[英]Understand end of transmission of email message in SMTP
我有一个简单的SMTP交易记录。 (它有点长,所以在这里访问它)。 它显示了诸如HELO
, MAIL
等低级握手的交换。
当本应接收电子邮件的服务器准备好接受电子邮件数据时,它将发送以下内容(日志中的第12行):
RawSmtp Information: 0 : << 354 Start mail input; end with <CRLF>.<CRLF>
但是,传输结束有点混乱(第74/75行):
RawSmtp Information: 0 : >> cannot foresee
RawSmtp Information: 0 : >>
RawSmtp Information: 0 : << 250 OK
在记事本中查看时,其外观如下:
但是,代码只是这样写的:
WriteResponse(writer, "354 Start mail input; end with <CRLF>.<CRLF>");
string line;
while ((line = reader.ReadLine()) != null && line != ".")
{
//do stuff
}
那是标准吗? 我的意思是发送类似<CRLF>.<CRLF>
并且仅检查点( .
)...?
它只检查一个整行.
在里面。 这是指示DATA节结束的标准技术。 看这里 。
另外,正如@jstedfast指出的那样, StreamReader.ReadLine()
方法从其返回的字符串中删除"\\r\\n"
行尾序列,因此在这种情况下,结果字符串将为"."
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.