错误:消息未发送。 服务器回答:354

在webmail上,每个用户在发送邮件时都会收到错误“ERROR:Message not sent。Server reply:354”。

但邮件发送正确,并达到正确。

你能告诉我问题在哪里,为什么发生?

更新:我发现在一些资源,这不是一个错误,但标准的信息消息。 另一方面,这很烦人。 你能告诉我,如果这是真的,如果是我怎样才能避免它?

TL; DR:

您的networking邮件程序写得不好,认为响应代码354是一个错误,即使它不是。

很长的回答:

这就是SMTP对话的样子(S = server,C = client)

S: 220 foo.com Simple Mail Transfer Service Ready C: EHLO bar.com S: 250-foo.com greets bar.com S: 250-8BITMIME S: 250-SIZE S: 250-DSN S: 250 HELP C: MAIL FROM:<[email protected]> S: 250 OK C: RCPT TO:<[email protected]> S: 250 OK C: DATA S: 354 Start mail input; end with <CRLF>.<CRLF> C: Blah blah blah... C: ...etc. etc. etc. C: . S: 250 OK C: QUIT S: 221 foo.com Service closing transmission channel 

正如你看到的,代码354的意思是“好的,我们已经完成了有关发件人和收件人的信息,现在给我实际的邮件”。 然而,你的networking邮件系统已经被编码,认为只有以2开头的响应代码意味着“成功”,所以它采取任何其他代码意味着有问题。 编写webmail程序的人需要回头阅读RFC 5321 ,然后修复这个bug。