Bog*_*iev 3 email specifications smtp protocols
我需要为我的SMTP服务器实现每个连接多条消息的支持.
每条消息都以:
data
<<content>>
.
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,协议状态应该重置为"在接收认证之后"点.这是对的吗?
问题:任何客户端是否可能使用多个data命令发送消息内容?标准是否允许它?
Sim*_*onJ 13
来自RFC2821("简单邮件传输协议"):
邮件数据由仅包含句点的行终止,即字符序列".".(见4.5.2节).
...
收到邮件数据结束指示需要服务器处理存储的邮件交易信息.此处理使用反向路径缓冲区,前向路径缓冲区和邮件数据缓冲区中的信息,并在完成此命令后清除这些缓冲区.
即<CRLF>.<CRLF>收到后,服务器消耗邮件数据并清除其缓冲区; 因此,客户端不能再发送与该消息相关联的更多内容,因为服务器将忘记该消息.
...
一旦启动,邮件事务按顺序包括事务开始命令,一个或多个RCPT命令和DATA命令.
...
如果邮件交易已经打开,则不得发送MAIL(或SEND,SOML或SAML),即只有在会话中没有启动邮件交易时才发送邮件,或者前一个邮件交易成功结束DATA命令,或者前一个命令是否使用RSET中止.
即MAIL开始一个新的邮件交易,一个成功的DATA命令(终止<CRLF>.<CRLF>)结束它; 然后,客户端可以发送另一条消息.
来自RFC4954("用于身份验证的SMTP服务扩展"):
成功完成AUTH命令后,不会再在同一会话中发出AUTH命令.成功完成AUTH命令后,服务器必须拒绝任何带有503回复的AUTH命令.
即,每个会话最多进行一次身份验证,并应用到该会话结束.
| 归档时间: |
|
| 查看次数: |
4708 次 |
| 最近记录: |