我的场景
我正在编写一个使用本地后缀向用户发送电子邮件的网站。对于我要发送的任何电子邮件,我需要知道 postfix 是否已成功发送(到下一跳)。
到目前为止我所做的
我正确配置了脚本的执行,以防电子邮件被退回。为了实现这一点,我发送带有“info+2493@mydomain”之类的电子邮件作为信封发件人地址,其中 2493 是我邮件的唯一标识符,并为使用 ad-hoc 中继的 info@mydomain 配置了一个传输条目(在主.cf) 执行我的脚本。好的
我的问题
我如何配置脚本的执行,就像我为成功发送的电子邮件所做的退回电子邮件一样?
除了退回和投递之外,我应该关心的邮件发送还有哪些其他可能性?
为了了解邮件传递的状态,postfix 使用 DSN作为RFC 3464中的状态。文档说明有 3 种交付状态
如果您通过
sendmail
(例如 PHP 中的mail 函数)发送电子邮件,默认状态是 postfix 会在出现故障或延迟时通知您。如果您想在消息发送成功时收到通知,-N delay,failure,success
请在您的 sendmail 命令中添加参数。此功能记录在Postfix DSN 支持和SENDMAIL(1)中。更新
为了区分成功和失败,您可以解析 的附件
DSN email
,特别是在Delivery report
section.这里是失败交付的片段
这里是成功交付的片段