根据RFC821的RCPT
命令可以返回以下内容:
250 OK
251 User not local; will forward to <forward-path>
551 User not local; please try <forward-path>
当SMTP返回551时会发生什么?客户端是否会尝试将其发送到正确的邮件服务器?
我正在实施一个简单的SMTP服务器,我不知道如果中继电子邮件是一个要求或可选 。
客户端可以这样做(通常会这样做),但行为是不能保证的(当在RFC中解释时,您可能会发现这个词)。 无论它是否完全实现定义。
251和551之间的区别是,如果SMTP服务器返回251,那么它将把邮件作为中继发送到正确的地方,客户端不应该(但仍然可能)自己发送消息,但是如果返回551 ,客户有望。 这不是协议要求。
如果您在操作SMTP服务器时的目标是确保邮件已经发送,您应该发送251并转发邮件。
另外,最新的SMTP RFC是RFC5321 ; 一般来说你应该根据这个实现SMTP,因为引入了大量的特性,而RFC821的很大一部分已经从协议中删除了。
我对服务器pipe理员来说比较新,但是我会尽力回答。 中继是可选的。 这是为了控制stream量的smtpstream量(如出于安全的原因与反垃圾邮件等)。 如果你在互联网上的smtp上转发,并且如果攻击面没有得到很好的保护,那么你可能会得到垃圾信息,欺骗你的系统中一个看起来合法的域名和账号。