我想validation邮件是否存在与SMTP电子邮件。 我可以做以下事情:
然后我执行以下命令:
HELO somedomain.com MAIL FROM:<[email protected]> RCPT TO:<[email protected]>
上面的命令给我250响应在我的本地机器上的无效电子邮件。 但是当我在一些在线服务上validation电子邮件时,我得到了554响应(这是正确的)。 这个奇怪的行为背后的原因是什么(本地机器上的结果无效)?
您的RCPT TO:如果邮箱不存在,应从技术上获得550而不是554 。 如果命令失败,则使用554 (例如无效的命令语法)。然而,就像Gryphius所说,如果使用的语法是有效的,许多邮件服务器将以250响应。 它不检查是否存在实际的邮箱,或者它只是不想告诉你该地址是否存在。
VRFY命令在技术上是SMTP协议“应该”用于validation电子邮件地址是否存在。 但是有不less重要的邮件服务并不真正允许VRFY或简单地说“不确定,但我会尽力实现”。
很多SMTP“服务器”以250 OK响应的原因是因为它们往往只是其他邮件服务器的前端网关,或者是序列中的“跳跃”。 所以他们会让另一台服务器在链路上处理地址是否有效。 有时邮件服务器不希望有人通过各种电子邮件地址迭代,希望得到无效与有效的列表。
您不能依靠SMTP来进行收件人validation。 许多邮件服务器只在邮件接收到本地队列后才检查收件人地址。 如果收件人帐户不存在,他们发回一个反弹。 (“接受和反弹”行为)。