[英]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.