Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email SMTP协议:每个连接有多封邮件_Email_Smtp_Protocols_Specifications - Fatal编程技术网

Email SMTP协议:每个连接有多封邮件

Email SMTP协议:每个连接有多封邮件,email,smtp,protocols,specifications,Email,Smtp,Protocols,Specifications,我需要为我的SMTP服务器实现对每个连接多封邮件的支持 每封邮件的结尾都是: data <<content>> . 数据 . 从逻辑上讲,协议状态应该重置为“接收认证后”点。对吗 问题:是否有可能任何客户端使用多个数据命令发送消息内容?标准允许吗?来自(“简单邮件传输协议”): 邮件数据由一行终止,该行只包含一个句点,即 是,字符序列“.”(见第4.5.2节) 接收邮件结束数据指示需要服务器处理存储的邮件事务信息。此处理消耗反向路径缓冲区、正向路径缓冲区和邮件数据缓

我需要为我的SMTP服务器实现对每个连接多封邮件的支持

每封邮件的结尾都是:

data
<<content>>
.
数据
.
从逻辑上讲,协议状态应该重置为“接收认证后”点。对吗

问题:是否有可能任何客户端使用多个
数据
命令发送消息内容?标准允许吗?

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

邮件数据由一行终止,该行只包含一个句点,即 是,字符序列“.”(见第4.5.2节)

接收邮件结束数据指示需要服务器处理存储的邮件事务信息。此处理消耗反向路径缓冲区、正向路径缓冲区和邮件数据缓冲区中的信息,并且在完成此命令后,这些缓冲区将被清除

i、 e.收到
后,服务器消耗邮件数据并清除其缓冲区;因此,客户端无法发送更多与消息相关的内容,因为服务器将忘记消息

一旦启动,邮件事务将按顺序由事务开始命令、一个或多个RCPT命令和一个数据命令组成

如果邮件事务已打开,则不得发送邮件(或SEND、SOML或SAML),也就是说,只有在会话中未启动邮件事务,或者前一个邮件事务通过成功的数据命令成功结束,或者前一个邮件事务通过RSET中止时,才应发送邮件

i、 e.
邮件
开始新的邮件事务,成功的
数据
命令(由
终止)结束该事务;然后,客户端可以发送另一条消息


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

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


i、 e.每个会话最多进行一次身份验证,并一直应用到该会话结束。

afaik要发送多条消息,请在收到上一个“数据”命令的确认后跳回“邮件发件人”命令,如您在“身份验证”状态后所说