imail邮件服务器远程管理-命令行应用程序
IMail Server 的命令行应用程序对于那些可以自动化的任务是非常有用的,否则管理员就
会陷入巨大的麻烦中.这些应用程序可以接收来自Windows NT 的控制台输入; 同时,也输
出反馈信息到控制台界面. 有多种的方法运行这些应用程序. 可以在控制台启动他们,在
批处理文件中运行,或者运行存贮在文本文件中指定的程序.
命令行程序可以处理从浏览器中输入的信息. 例如, 用户可以在网上的表单中填入指定的
主机的信息,系统管理员可以利用脚本文件执行程序adddomain.exe 在Imail Server 上
建立一个虚拟主机. 或者, 管理员可以用从网上的表单生成的文本文件,利用程序
imail1.exe 根据该文本文件中的信息生成一封邮件.
本附录描述了Imail Server 命令行应用程序:
. addalias.exe – 增加,修改,删除别名
. adddomain.exe - 增加,修改,删除虚拟主机
. adduser.exe - 增加,修改,删除用户
. imail1.exe – 建立一封邮件信息
. immsgexp.exe – 从用户的目录中删除旧的邮件
. ldaper.exe – 发布LDAP 数据库
. mailall.exe – 发送广播邮件到某个主机上的所有用户
. regback.exe – 备份Imail 注册登记表中信息
. smtp32.exe – 分发一封邮件
. isplcln.exe – 删除位于Spool 目录下的旧的邮件
增加别名(addalias.exe)
Addalias.exe 可以根据一个文本文件中存储的别名批处理的增加到系统中,或者删除以及
修改系统中已经有的别名. 如果你只是在控制台中打入命令addalias, 你可以手工的输
入命令, 每输入一行敲击Enter 以输入下一行. 按组合键CTRL-Z 退出.
Basic Command Syntax 基本语法
addalias [-h hostname] [-cX] [-{a|d|m}] alias[=destination]
Argument Explanation 参数解释
-h hostname 利用参数-h argument 为别名指定虚拟主机. 如果没有指定,使用首要主
机.(如果你在文本文件中使用-h, 会影响所有在该文件中的所有内容).
-cX 利用-c 指定一个自定义的分隔字符. 注意空格符是不允许的. (如果你在文本文件
中使用-c, 会影响所有在该文件中的所有内容.)
-a aliasname 利用-a 增加一个别名,如果该别名不存在的话. aliasname 是你希望增加
的别名. 一条命令中只允许加入一个别名.
-m aliasname 利用-m to 修改或者增加一个别名. aliasname 是你希望修改的别名. 一
条命令中只允许修改一个别名.
-d aliasname 利用-d 删除一个已经存在的别名. aliasname 是你希望删除的别名, 一
条命令中只允许删除一个别名.
-f filename 你可以把多条增加别名的命令写在一个文本文件中. 利用-f 指定该文件名.
(以上所有的命令都可以使用这种方法,但必须注意的是参数–h 和–c 会影响文件中
所有的内容.)
-l 利用-l 列出当前的别名. 该命令不能再文本文件中使用.
-? 利用-? 查看命令帮助.
增加别名到缺省域名
以下的例子增加一个别名newalias 到一个域名email.
addalias -c: -a newalias:email
addalias -a newalias=email
addalias -c: newalias:email
addalias newalias=email
addalias newalias email
增加别名到指定的域名
以下的例子增加一个别名到newalias 到一个主机为secondhost.com. 中的域名为
email 的邮件主机中.
addalias -h secondhost.com -a newalias email
删除一个别名
以下的例子删除一个别名
addalias -d oldalias
addalias -h another.net -d alias1
Return Codes 返回码
Addalias 返回1 如果该命令执行了至少一条请求; 返回0 如果失败.
利用文本文件
你可以利用文本文件批处理的完成以上大部分的工作. 你可以利用该技术从别的邮件系统
上增加别名到你的Imail Server 系统上,条件是其它的邮件程序可以生成规定格式的文
本文件.
例如,你可以生成一个文本文件test.txt , 其中包括以下的内容:
test1=me
test2=test1
test3=test2
-h virtual001 test1=me
test3=me
-m test2=him
-d test3
在控制台,你可以输入:
addalias < test.txt
字符< 告诉程序利用文本文件test.txt 作为输入.
然后你会得到以下的反馈信息:
current host is mail1.ipswitch.com
added [mail1.ipswitch.com] test1 -> me
added [mail1.ipswitch.com] test2 -> test1
added [mail1.ipswitch.com] test3 -> test2
current host is virtual001
alias exists [virtual001] test1 -> someone
added [virtual001] test3 -> me
modified [virtual001] test2 -> him
deleted [virtual001] test3 -> me
添加虚拟主机(adddomain.exe)
程序domain.exe 是一个用来添加虚拟主机的工具. 可以简单的添加单个虚拟主机,但如果
在批处理文件中使用,可以方便的添加多个虚拟主机.
基本的语法和例子
adddomain -hHostname -iIPAddress -tTopDir
[-a Aliases -uIM | NT -x MaxMBXSize -s MaxMBXMsgs -rMaxUsers
adddomain -hHostname -m
[-tTopDir -aAliases -xMaxMBXSize -sMaxMBXMsgs -rMaxUsers]
adddomain -hHostname -delete
adddomain -fFilename
解释:
-h 完全真确的主机名字; 如果是修改,必须是正确的Imail 主机名字.
-i IP 地址或者是VIRTUAL 即没有自己的IP 的主机.
-t 路径Path (绝对路径或者是相对路径) 该主机的顶级目录.
-m 表记,说明当前的操作时修改而不是创建.
-a 主机的别名列表.
-u 用户数据库(IMail 或者NT).
-x 缺省的邮箱最大容量(1KB).
-s 缺省的邮箱最大邮件数.
-f 包含设置修改设定的文件的路径.
-r 一台主机上的最大用户数.
-delete 删除虚拟主机.
注意
AddDomain.exe 不会在把一个已经被分配的IP 地址分配给新的主机时发出警告信息.
增加用户(adduser.exe)
Adduser.exe 能过增加,修改,删除用户, 但被修改的邮件主机必须是在使用Imail 数据
库或者外部数据库.( Adduser.exe 不能增加用户到使用Windows NT 用户数据库的邮件主
机.)
你可以利用adduser.exe 把存储在一个文本文件中的用户增加到服务器中.用户密码的长
度在4 到15 个字符之间.
如果你只是在控制台输入了没有任何参数命令adduser , 那么你可以随后手工的输入命
令, 一行一条命令,键入Enter 换行. 键入CTRL-Z 退出.
基本语法
Adduser.exe [-h hostname] [-k userid] [-m userid] [-u userid]
[-p password] [-n name] [-f filename] [-l] [±chgpass] [±web]
[±active] [±info]
Argument When to user 参数的使用
-h hostname 利用-h 指定用户所在的虚拟主机, hostname 主机的名字. 如果没有指定
任何的主机名字,将使用首要主机. (当你在文本文件中使用参数-h 时会影响文件中所有
的内容.)
-k userid 利用-k 删除一个用户帐号, userid 是希望删除的帐号. 一条命令只能删除
一个用户帐号.
-m userid 利用-m 修改用户帐号, userid 是希望修改的帐号. 一条命令只能修改一个
用户.
-u userid 利用-u to 增加一个用户帐号, userid 是希望增加的帐号. 一条命令只能添
加一个帐号.
-n “name” 利用-n 指定用户的全名,用双引号圈起来. name 是用户的全名.
增加一个用户帐号
以下的例子增加一个名为test01 的用户.
Adduser -h myhost.com -u test01 -n "ms test" -p yourpass
Adduser -u test01 -n "mr test" -p nopass
Adduser -u test01
Adduser test01
-l 增加回信地址和用户地址到LDAP 数据库.
-p 利用-p 指定用户帐号的密码, password 是用户的密码. 如果没有指定,缺省的密码
为'password.'.
-q 利用-q 关闭重复别名检查.
-c X 利用-c 指定可选的分隔字符, X 代表分隔字符. 不允许使用空格.(如果你在一个文
件中使用-c, 将影响文件中所有的内容.).
-f filename 你可以把多个命令放置在一个文本文件中供adduser.exe 批处理执行. 利
用-f 参数指定该文件的名字.
-chgpass 利用-chgpass 关闭功能—用户可以自己更改密码.
+chgpass 利用+chgpass 打开功能—用户可以自己修改密码.
-web 利用-web 关闭功能—用户可以使用Web Messaging.
+web 利用+web 打开功能—用户可以使用Web Messaging.
-active 利用-active 使用户不能登入.
+active 利用+active 使用户可以登入.
-info 利用-info 使用户信息不会被显示在whois, finger 和LDAP 查询中.
+info 利用+info 使该用户信息可以被显示在whois, finger 和LDAP 查询中.
-? 利用-? 查看帮助信息.
# : ; 注释符号(在文本文件中使用).
删除一个用户帐号
以下的例子删除一个用户帐号.
Adduser -k -u test01
Adduser -h another.net -k test01
返回码
Adduser 返回1 在服务执行了至少一条操作以后. 返回0 在操作失败以后.
使用文本文件
使用文本文件,你可以把多个操作集中在一起--方便的进行批处理操作,减少系统管理员的
工作量.
假设你需要增加四个用户( userid, smith, test1, 和jones) 到服务器wks013 .
Adduser.exe 假设在文本文件中没有参数, 每一行的信息是用户名, 密码, 和全名.
例如, 你可以创建一个文本文件addfour.txt ,包含以下的内容:
userid,password,full name
smith,whypass,Mrs Smith
test1,Mr Smith
jones,okpass,Tom Jones
在控制台下,输入:
Adduser -h station1.ipswitch.com -f addfour.txt
你会得到以下的反馈信息:
current host is wks013.augusta.ipswitch.com
OK: added userid to host station1.ipswitch.com
OK: added smith to host station1.ipswitch.com
OK: added test1 to host station1.ipswitch.com
OK: added jones to host station1.ipswitch.com
注意用户test1 will 会有一个缺省的密码“password” .
关闭Web 选项
新增加的用户的Web 访问功能缺省是开放的,除非你在控制台中使用了参数(-/+chgpass,
-/+web, -/+active, -/+info). 修改一个用户也不会影响他的Web 功能的设定除非你在
控制台中的命令中包含了设置Web 功能的参数: 一个用户可以使用的Web 功能根据你给
定的参数而被关闭或者开放.
文本文件的例子
#Entries below default to Primary domain automatically.
#Adds user test100 with password nopass, and full name Mr. Test100
test100,nopass,"Mr. test100"
#adds user test101 with password nopass, name of Ms. Test101,
#has ability to #change own password, access from web,
#account is not disabled, user info is accessible from outside.
-u test101 -p nopass -n "Ms. test101" +chgpass +web +active +info
#Add user killthisone
-u killthisone
#Remove user killthisone
-k killthisone
#Change domain(host)
-h virtual001
#Change delimiter from default(,) to a (+).
-c+
#Add user test100 with password of password and name of Mr. Test100
test100+password+"Mr. Test100"
#Modify user test100 with new name of Mrs. Test100
-m -u test100 -n "Mrs. Test100"
#Change domain(host)
-h virtual002
#Change delimiter back to default
-c,
#Add user test101 with password nopass and name Mrs. Test101
test101,nopass,"Mrs. test101"
#Add user test103 with default password, with default name test103,
has #ability to change own password, access from web, account is not
disabled, user #information is accessible from outside.
-u test103 +chgpass +web +active +info
#Add user test104 with default password, with default name test103,
has #ability to change own password, access from web, account is not
disabled, user #information is not accessible from outside.
-u test104 -chgpass +web +active -info
#Modify user test103 so user information is not accessible from
outside.
-m test103 -info
以上命令的执行的结果:
current host is mail.some.where.com
OK: added test100 to host mail.some.where.com
OK: added test101 to host mail.some.where.com
OK: added killthisone to host mail.some.where.com
OK: User "killthisone" removed from " mail.some.where.com ".
INF: current host is virtual001
OK: added test100 to host virtual001
OK: user test100 modified in virtual001
INF: current host is virtual002
OK: added test101 to host virtual002
OK: added test103 to host virtual002
OK: added test104 to host virtual002
OK: user test103 modified in virtual002
发送邮件(imail1.exe)
Imail1.exe 创建邮件并且通过SMTP 分发邮件到本地主机的邮箱或者远端主机的邮箱.
(SMTP 分发动作是由程序smtp1.exe 完成的.) Imail1.exe 的作用和UNIX 中的
sendmail 类似.
注意邮件必须从一个文件中得到正文. 当指定文件时候,要给出完整的路径和文件名.
Imail1.exe 当前对在编辑器中生成的邮件的正文的大小有限制,在32K 以下. 最终的邮
件的大小(包括附件) 视磁盘大小决定.
Imail1.exe 现在可以创建包含二进制编码Content-transfer-encoding, base64 编码,
Content-types of text 编码的MIME 邮件.
命令语法
Imail1.exe 支持以下的命令语法:
-u “ userid” 利用-u 指定发送邮件的用户(即From: 块); 建议用户名用引号圈起来.
-t “ recipient1[, recipient2][,...]” 利用-t 指定邮件首要接收者(即To: 区域).
imail1 -s “ subject” 指定邮件的主题.
-c “ recipient1[, recipient2][,...]” 指定邮件的接收者(即cc: 块).
-b “ recipient1[, recipient1][,...]” 利用-b 指定邮件的隐藏接收者(即bcc: 区
域).
-f filename 参数-f 指定了邮件正文. 指定一个被发送的文件(接收者的邮件地址也同
时在该命令行中提供).
-i filename -i 显示一个可以交互式的创建邮件的窗口,其中可以可以显示文件的内容并
且可以编辑.
-r 利用-r 增加文件头Army “Registered:”.
-a filename (IMail 4.01 或以后版本的) 利用-a 指定附件文件(MIME format)的名字.
删除旧的邮件(immsgexp.exe)
Immsgexp.exe 可以让管理员删除指定天数的旧的邮件.
基本语法
immsgexp -t startdirectory -d #of_days_to_save
所有在目录startdirectory 之下的邮箱都会被检查,并且邮件的日期长于指定的天数
#of_days_to_save 都会被删除. 日志文件exYYMMDD.log (或者exYYMMDD.### 当文
件.log 已经存在了) 将被建立. 其中记录所检查的目录和邮箱, 多少哦邮件被删除,多
少磁盘空间被释放.(基于文件和目录).
例子
immsgexp -tc:\imail -d60
发布到LDAP 数据库(ldaper.exe)
Ldaper.exe 发布在用户属性中的标签General 中指定的信息到LDAP 数据库. 在你使用
程序adduser.exe 添加大量的用户的时候这是一个非常便利发布到LDAP 数据库的工具.
基本语法
ldaper [options]:
Ldaper.exe 支持以下命令行选项. 选项可以和连字号或者反斜扛结合作为前缀.
-H 主机名
-U 用户名
-P 密码
-GN 用户的第一个名字
-SN 用户的第二个名字
-S 街道地址
-C 城市
-ST 州/市/省
-CO 国家
-Z 邮编
发送邮件到所有的用户(Mailall.exe)
Mailall.exe 是一个命令行工具,可以发送邮件到指定的主机上的所有的用户或者所有主
机上的用户,当然是基于IMail Server 系统的.
基本语法
mailall -h hostname|ALL> -f sender -d [-s Subject] <FullPathToMessageFile>
例子
mailall -h myhost -f admin@myhost -s"Admin note" C:\mailnotes.txt
这个例子发送一个文件mailnotes.txt 到所有的在主机myhost 上的用户.
该信息来自于admin@myhost; 主题为Admin Note.
Alias1=|mailall -h myname -d
这个例子在主机myname 创建一个程序生成的别名. 然后,你可以发送邮件到该别名
Alias1@myname.com, 该邮件会被发送到主机myname 上所有的用户的邮箱中. -T 电话号
码
-O 组织
-OU 部门
-h 主机名
或者
-h ALL
参数-h 是必须的. 你必须指定一个主机名或者是单词ALL,即所有的Imail 上的主机.
-f sender 利用-f 指定在From: 中所显示的邮件地址.如果你使用一个文本文件而没有
From: 那么需要指定一个值.
-s subject 参数-s 是可选的.指定在邮件主题中的内容.
-d 可选的. -d 如果你希望在邮件发送完毕以后,源文件被删除那么使用该选项.
FullPathToMessageFile 是必须的.
备份Imail 配置(regback.exe)
Regback.exe 备份关键字SOFTWARE\Ipswitch\IMail 和所有的其中子项.
基本语法
regback [options]
Regback.exe 支持以下的命令行选项. 选项可以和连接子或者反斜扛结合作为前缀.
*文件的名字必须在8个字符以内并且扩展名最多3个. 任何超过的文件名或者扩展名都会
被程序自动的缩短. 如果没有提供文件名, regback.exe 利用缺省的文件名imyymmdd.reg,
这里yymmdd 代表当前的年,月,日.
分发邮件(smtp32.exe)
程序smtp32.exe program 被Imail Server 的SMTP 服务作为邮件完成邮件分发功能.
该程序包括对DNS Mail Exchanger (MX) 的支持和对邮件列表的支持. 被进程smtpd32
调用以完成接收到的邮件的分发工作同时清空邮件发送队列.
Smtp32 处理位于目录Spool 中的邮件, 包括发送到本地的邮件和远端主机的邮件.
-? 显示帮助.
-b 备份文件的名字filename.*
Smtp32 (和Imail) 有一个限制即一封邮件中只能包括100个接收者的邮件地址,但这会根
据邮件地址的长度而有所变化. 你可以参考RFC 821 section 4.5.3.
Smtp32 不会检查包含在邮件头中的的信息,对于这部分的信息也没有任何的行数的限制.
Processing Rules for smtp32 (and imail1)
Smtp32 和imail1 根据以下的规则处理邮件:
1 检查接收者是否本地用户.
. 如果是,把主机名替换为LOCALHOST.
. 如果没有主机名而该接收者存在于文件users.sys中, 把主机名设为LOCALHOST.
. 如果该接收者不存在于文件users.sys, 把主机名设为“Default host name.”
2 对所有的接收者根据主机名排序.
3 发送所有到本地接收者的邮件.
4 如果还有接收者保留在列表中, 如果选项Send Direct 被打开了, 连接接收者所在的
主机并且分发所有发送到该主机的邮件.
. 如果发送成功,从列表中删除.
. 如果连接失败,依然保留在列表中.
5 如果还有接收者保留在列表中, 连接“Smart gateway”分发剩下的邮件.
. 如果分发成功,从列表中删除.
. 如果连接失败,保留到队列中.
6 返回任何不合法的邮件接受者的邮件到发送者.
smtp32 支持以下的命令行选项:
清除目录Spool (isplcln.exe)
Isplcln.exe 删除所有的位于目录spool 下的日期大于指定天数的邮件.
基本语法
isplcln -n x -l y
x 是指定的天数, 指几天以后没有日志的邮件被删除; y 是指定的天数,指几天以后有日
志的邮件被删除.
注意isplcln.exe 会删除参数限定条件以内的位于目录spool 中的邮件,文件是否被锁
不会对该程序有影响.
例子
isplcln -n 5 -l 30
这个例子删除了所有的5天以上的没有日志的邮件和30天以上的有日志的邮件.
smtp32 没有参数的时候, smtp32 会试图发送所有的在邮件队列中的邮件.
smtp32 queue_filename 迫使smtp32 处理邮件队列中指定的单一邮件.
smtp32 -qr -x 迫使smtp32 试图分发所有的邮件队列中的邮件.
smtp32 -v 激活所有的会话显示.