首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMTP协议:每个连接多个邮件

SMTP协议:每个连接多个邮件
EN

Stack Overflow用户
提问于 2012-01-03 22:57:10
回答 1查看 5.5K关注 0票数 3

我需要为我的SMTP服务器实现对每个连接多条消息的支持。

每条消息都以:

代码语言:javascript
复制
data
<<content>>
.

从逻辑上讲,协议状态应该重置为“接收到身份验证后”点。这是正确的吗?

问题:有没有可能任何客户端都使用多个data命令发送消息内容?标准允许这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-04 04:35:30

来自RFC2821 (“简单邮件传输协议”):

邮件数据以只包含句点的行结尾,即字符序列“。(参见第4.5.2节)。..。接收邮件结束数据指示需要服务器处理所存储的邮件事务信息。此处理将消耗反向路径缓冲区、正向路径缓冲区和邮件数据缓冲区中的信息,并且在此命令完成时,这些缓冲区将被清除。

即在接收到<CRLF>.<CRLF>之后,服务器消耗邮件数据并清除其缓冲器;因此,客户端随后不能发送更多与该消息相关联的内容,因为服务器将忘记该消息。

...启动后,邮件事务按顺序由事务开始命令、一个或多个RCPT命令和一个数据命令组成。..。如果邮件事务已经打开,则不能发送邮件(或SEND、SOML或SAML),即,只有在会话中未启动邮件事务,或者前一个事务成功地以DATA命令结束,或者前一个事务已通过RSET中止时,才应发送该邮件。

即,MAIL开始新的邮件事务,并且成功的DATA命令(由<CRLF>.<CRLF>终止)结束该事务;然后,客户端可以发送另一消息。

来自RFC4954 (“用于身份验证的SMTP服务扩展”):

成功完成AUTH命令后,在同一会话中不能再发出AUTH命令。成功的AUTH命令完成后,服务器必须使用503回复来拒绝任何进一步的AUTH命令。

即认证在每个会话中最多发生一次,并且一直应用到该会话结束。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8714123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档