Sun Java System Messaging Server 6 2005Q4 管理指南

要执行的 LMTP 协议

本节提供了 LMTP 对话样例,并带有在该对话中看到的解释。中继上的 LMTP 客户机使用标准的 LMTP 协议与后端存储上的 LMTP 服务器联系。但是,该协议以特定方式使用。例如:


---> LHLO
<--- 250 OK

LHLO 邮件没有采取任何操作。回复始终是 250 OK


---> MAIL FROM: address size=messageSizeInBytes
<--- 250 OK

对创始人地址没有进行任何检查或转换。size= 参数给出了要传送的邮件的大小(以字节为单位)。此邮件的大小与协议中显示的大小完全相同。邮件的大小可以不必完全相同,但是实际邮件的大小不能超过此大小。LMTP 服务器将按此大小分配内存缓冲区以接收邮件。


---> RCPT TO: uid+folder@domain xquota=size,number xdflg=xxx
<--- 250 OK

在收到收件人地址时不对其进行任何检查,但是将生成一个收件人列表以便以后使用。请注意,对于主域中的 uids,地址的 @domain 部分将被忽略,并且 +folder 部分是可选的。这与 MTA 中的邮件存储通道所使用的地址格式相同。

xquota= 参数给出了用户的邮件配额,它包括邮件的最大总大小和最大数目。MTA 提供了在对用户执行 LDAP 查找以进行地址转换时检索到的信息。此信息用于使邮件存储中的配额信息与目录保持同步。获取配额信息不会导致其他性能受到打击。

xdflg= 参数指定了一个数字,该数字可以解释为位字段。这些位将控制传送邮件的方式。例如,值为 2(如果设置)的位将保证邮件的传送,即使用户超出配额。(请注意,xdflg 是内部参数并且其中的位如有更改或添加,恕不另行通知。我们不支持使用此扩展的其他客户机与我方服务器结合使用,也不支持将我方客户机与某些其他服务器和此参数结合使用。)

此交互式操作可能重复许多次,每个收件人一次。


--->DATA
---> <the message text>
--->.

然后 LMTP 客户机发送整个邮件(充满点的),类似于 SMTP 执行的操作。完成邮件传送后,每行上将带有一个点 (.)。如果超过邮件大小,则 LMTP 服务器将发送:

<--- 500 message too big

并结束连接。

假设正确接收了邮件,则 LMTP 服务器将向 LMTP 客户机发送回每个收件人(在 RCPT TO: 行中给定的)的状态。例如,如果成功传送了邮件,则响应为:

<--- 250 2.5.0 address OK

其中 address 与在 RCPT TO: 行中显示的完全相同。

对话可以使用另一个 MAIL FROM: 行重复,或使用以下交互式操作结束:


---> quit
<--- 221 OK

表 15–1 显示了每个收件人的可能的状态代码。此三列表在第一列中显示了短代码,在第二列中显示了其等效的长代码,在第三列中显示了状态文本。2.x.x 状态代码是成功代码,4.x.x 代码是可重试错误,5.x.x 代码是不可重试错误。

表 15–1 收件人的 LMTP 状态代码

短代码 

长代码 

状态文本 

250 

2.5.0 

确定 

420 

4.2.0 

邮箱被锁定 

422 

4.2.2 

超出配额 

420 

4.2.0 

邮箱格式错误 

420 

4.2.0 

邮箱不受支持 

430 

4.3.0 

IMAP IOERROR 

522 

5.2.2 

超出永久配额 

523 

5.2.3 

邮件太大 

511 

5.1.1 

邮箱不存在 

560 

5.6.0 

邮件包含空字符 

560 

5.6.0 

邮件包含 nl 

560 

5.6.0 

邮件标题错误 

560 

5.6.0 

邮件无空白行 

否则,将存在对邮箱、本机系统(因此为 UNIX)和文件的传送选项的更改。这些规则的目标是要生成地址,这些地址将导致邮件通过相应的 LMTP 通道被发送到后端服务器。生成的地址是以下格式的源路由地址:


@sourceroute:localpart@domain