2010-03-30, 09:45 | #1 (permalink) |
论坛管理员
注册日期: 2009-07-01
帖子: 537
|
JDMail V3.10 别名管理简介
JDMail V3.10有用户别名、域别名,另外还提供指令别名,通过指令别名,让客户可以开发自己的程序,对收到的邮件进行特殊处理。详细介绍如下。 别名就是别称,alias。JDMail有普通(一般)别名、域别名、指令别名的区别。 普通别名 特定域的特定的用户名可以指定为相同域或其它域特定用户的別名,这种别名被称为一般别名。 例如,abc.org 域中 support 是同域用户 foo 的一个别名定义,当发信给 support@abc.org , foo@abc.org 将收到邮件。info、postmaster和webmaster 在很多场合被当做别名来使用。 域别名 一个特定域被指定为系统已存在域的别名,所有发给用户@别名域的邮件,都将发给用户@真实域。 命令别名 给特定域特定用户的邮件,到达的同时能执行命令,叫做命令别名。命令别名可以看做是"特别定做的域处理"、"特别定做的用户处理"。 普通别名管理 管理域内用户的别名。 用户别名不需要在 [用户管理] 或 [邮件列表管理] 登记。 别名可以使用通配符(?或*)。 在实际应用中,可以充分利用别名功能的灵活性,用较少的实际帐户管理较多的域和邮箱。 域别名管理 例如,otherdomain.net是somedomain.com的域别名,所有发给foo@otherdomain.net的邮件,实际都发给foo@somedomain.com 。 别名可以使用通配符(*),如 *.somedomain.com 。 特定域收到的邮件,都转发到其它域的同名用户下,这是域别名的功能。 比如,abc.com 是 xyz.net 的别名,所有发给foo@abc.com 的邮件,都转到了foo@xyz.net的邮箱。 域的别名不需要在 [域的管理]登记。 在以少数的实际用户运营多个域的环境下,请有效利用域别名这个功能。 给特定域的特定用户的邮件,到达的同时能执行各种的指令的,我们称命令别名。在JDMail系统,命令别名是 "域级命令别名","用户级命令别名","用户级投递管理"的总称。 域级命令别名 当邮件到达时,给一个特定的域执行任意命令。但是,它的域必须非本地域名。 当邮件到达时,JDMail先确定目标域是否存在,如果没找到,检查是否有针对该域的指令,然后运行指令。 用户级命令别名 命令别名,是自定义域处理的用户版本。是为了邮件到达时,给一本地域的特定用户名运行任意命令。但是,特定用户应该是“不存在的”。 检查SMTP会话的目标地址(RCPT TO是否在本地用户中存在,如果不是本地域用户,就搜索目标地址的命令别名,如果存在就执行已经定义的指令。 用户级投递管理 自定义用户处理,当邮件到达本地特定用户时,可以执行任意的指令。 命令别名指令格式: 指令 (空白) 参数(宏) (空白) ...... (换行) "指令" 是jdmail的内部命令。可以是OS系统的内部命令或外部命令、批处理脚本(Windows),您可以指定任何其它支持标准输入输出的程序。 "参数(宏)" 可以有多个。此外,您可以重复执行命令行。 ■jdmail的宏 您可以在命令行指定您自己的宏。当您执行内部或者外部命令的时候,宏可以作为参数传递。 $(FROM) 或 @@FROM 邮件的发件人地址(SMTP会话时的MAIL FROM: 的值)。 $(RCPT) 或 @@RCPT 邮件的收件人地址(SMTP会话时的RCPT TO: 的值)。 $(FILE) 或 @@FILE 邮件(文件)在文件系统上的绝对路径。 $(MSGID) 或 @@MSGID jdmail生成的邮件编号(ID)。 $(MSGREF) 或 @@MSGREF 邮件的SMTP参考值。 $(TMPFILE) 或 @@TMPFILE 邮件的临时文件名。 $(USERAUTH) 或 @@USERAUTH SMTP认证时的用户ID。 ■指令的种类 指令 external、filter、redirect、lredirect、smtprelay、smtp、mailbox(只有在自定义用户处理的场合下有效) ,用法如下(大写也可以)。 external 启动一个外部命令。详细请参阅 "如何运行一个外部程序" 。 filter 启动一个外部命令。跟external的差异:external 只有一个返回值,filter命令和 "过滤器管理" 一样,同样可以设置返回值。 redirect 收到的邮件重新定向到内部域或者外部域。这个命令需要有参数。 lredirect 收到的邮件重新定向到内部域或者外部域。用法和redirect是一样的,不同之处在于redirect重定向时使用最初的连接时的发件人地址(MAIL FROM,lredirect重定向时替换为新的发件人地址。 smtprelay 收到的邮件直接转发到SMTP中继服务器。中继服务器如果有多个,可以用分号分隔。 smtprelay 192.168.0.10 到达的邮件转发到中继服务器IP 192.168.0.10。 smtp 进入正常的SMTP处理。不可以使用参数。 ■外部程序的运行方法 如果您使用命令external 或 filter 启动一个外部程序,命令行格式如下: external(filter) (空白) 优先级 (空白) 超时秒数 (空白) 带路径的外部程序 (空白) 参数(宏) ...... (改行) * 优先级 处理的优先级是 0(通常)、-1(非优先)、+1(优先)。 * 超时秒数 jdmail通过指定的秒数等待来自外部程序的返回值。0 代表外部程序启动后,不等待,立刻执行下一个处理。如果外部程序使用了宏 0FILE),需要指定充分的超时秒数。否则,外部程序在邮件文件未处理完的情况下,可能删除邮件文件。 * 带路径的外部程序 指定被调用的外部程序。 * 参数(宏) 外部程序运行时所需的参数,如果有多个参数,请用空格分隔。以下是perl程序c:/temp/task.pl处理邮件文件的示例。 external 0 30 perl c:/temp/task.pl $(FILE) 以下external命令实现 Windows XP/Vista/2003 等OS的重新启动(shutdown.exe 是OS的外部命令)。 external +1 10 shutdown -r -f -t 1 |