发送电子邮件时,在SMTP对话期间通过RCTP TO:命令给出收件人列表。稍后,在DATA命令中,会指示“To”、“Cc”、“bcc”等标题字段。此RCPT是否必须与数据命令中指示的标头匹配?
另外,如果收件人不在RCPT TO中,而是在电子邮件标头的TO字段中,那么它是否将被传递到收件人而不是RCPT中?
发布于 2012-06-15 15:21:57
不,他们不一定要匹配。发送邮件时,SMTP服务器(也称为邮件传输代理或邮件传输代理)正在创建一个所谓的SMTP信封,其中包含邮件的收件人和发送方(请参阅RFC5321):
SMTP传输邮件对象。邮件对象包含信封和内容。SMTP信封作为一系列SMTP协议单元发送(见第3节)。它由一个发端地址(错误报告应该指向该地址)、一个或多个收件人地址以及可选的协议扩展材料组成。
实际上,RCPT TO:命令有更多的收件人比消息头更多--一种常见的情况是使用“盲副本”bcc:(参见RFC5321):
由于多种原因,没有出现在邮件标题部分中的地址可能会出现在到SMTP服务器的RCPT命令中。最常见的两种方法是使用邮件地址作为“列表爆炸器”(解析为多个地址的单个地址)和出现“盲副本”。
发布于 2012-10-23 15:06:38
此RCPT是否必须与数据命令中指示的标头匹配?
不是的。
如果收件人不在RCPT TO中,而是在电子邮件标头的To字段中,那么它是否将被传递到收件人而不是RCPT中?
RCPT。这是来自我自己SMTP客户端的(修改后的)记录,在这里我做的正是您所要求的:
CLIENT: MAIL FROM:<myaccount@gmail.com>
SERVER: 250 2.1.0 OK
CLIENT: RCPT TO:<myaccount@gmail.com>
SERVER: 250 2.1.5 OK
CLIENT: DATA
SERVER: 354 Go ahead
CLIENT: Subject: Test email
CLIENT: From:'John Doe'<fakeaccount@gmail.com>
CLIENT: To:'John Doe'<fakeaccount@gmail.com>
CLIENT: This is a test...
CLIENT: .
该消息已成功地发送到"myaccount@gmail.com“。
发布于 2012-05-30 18:46:32
SMTP协议(RFC 2821)声明如下:
当使用RFC 822格式7,32时,邮件数据包括 备注标题项目,如日期,主题,到,抄送,从。服务器SMTP 系统不应基于感知到的缺陷拒绝消息。 RFC 822或MIME 12消息头或消息体。
这是:
数据命令只能在协议交换中的两个点失败:
从这些语句中,headers和RCPT到:命令内容不必匹配(尽管它们应该匹配),而不使用RCPT TO:可能会导致错误,从而阻止数据命令的进行。
https://stackoverflow.com/questions/10822190
复制相似问题