在网络邮件上,每个用户在发送邮件时都会收到错误“错误:消息未发送。服务器回复:354”。
但邮件已正确发送并正确到达。
你能告诉我问题出在哪里以及为什么会发生这种情况吗?
更新:我在一些资源中发现这不是错误,而是标准信息消息。另一方面,这很烦人。你能告诉我这是否是真的吗?如果是,我该如何避免?
答案1
总结:
您的网络邮件程序编写得很糟糕,认为响应代码 354 是一个错误,但事实并非如此。
长答案:
SMTP 对话如下所示(S = 服务器,C = 客户端)
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 表示“好的,我们已经了解了发件人和收件人的信息,现在请给我实际的邮件”。但是,您的网络邮件系统已被编码为认为只有以 2 开头的响应代码才表示“成功”,因此需要任何其他代码才表示存在问题。编写网络邮件程序的人需要回去阅读RFC 5321然后修复该错误。