我怎么知道我的邮件被Sendmail发送成功了

How could I know that my mail was successfully sent by Sendmail

当我使用 sendmail 命令发送邮件然后执行 echo $? 它 returns "0", 但我没有收到邮件并且日志显示:

stat=Deferred: Connection reset by mxbiz2.qq.com

我怎么知道我的邮件发送成功了?

首先,在您要发送的电子邮件中设置一个退回地址,该地址附加到您可以使用脚本处理的邮箱(例如使用 procmail)

接下来,在实际发送过程中记下电子邮件的 ID 和发送地址。将其存储在数据库中。然后定期扫描日志以查找 ID 号。如果有任何消息,例如您提到的 "deferred" 消息或其他问题,请在数据库中记录 activity

最后,如果有任何邮件退回,则将它们与数据库进行比较并将这些地址标记为错误地址

一段时间后,您的数据库可用于生成电子邮件地址的报告和状态

对于如此多的复杂检查,这不是 100% 的方法,但标准 SMTP 电子邮件不能保证送达或收据,它不是那样的