本期首页 | 过往期刊 | 公司主页
2010.04 - 第四十五期
JDMail V3.10 别名管理简介
 

    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


    产品手册:http://www.mailer.cn/Download/JDmail_V3.10_Manual.pdf
    产品网站:www.mailer.cn
    公司网站:www.chundi.com
Copyright 1997-2017 北京春笛信息技术有限公司 地址:北京海淀区知春路23号863软件园量子银座九层