Postfix - 将 MTA 响应传输到脚本

Postfix - 将 MTA 响应传输到脚本

我正在编写一个应用程序,它将解析 MTA 响应并更新数据库,指示邮件是否已成功传递(dns:200)或发生错误(dsn:511)。由于我不是系统专家,经过一番尝试,我决定在这里询问哪种方法最适合解决我的问题。

我关注了指导,我最成功,因为我能够通过我的脚本解析该消息。然而,内容是发送到远程邮件服务器之前的邮件。所以我读了这个邮政;解释了如何使用 transport_maps。好像选项还不够,还有这个邮政关于如何使用别名。

哪一个解决方案最好?同样,我想跟踪所有响应,而不仅仅是退回响应。

答案1

都不是。如果您想知道服务器如何处理消息,您应该阅读日志。

默认情况下,postfix日志记录到syslog工具MAIL。通常,默认情况下,会将消息写入/var/log/maillog/var/log/mail.log

鉴于rsyslogsyslog-ng都可以写入SQL数据库,您可能只想这样做并编写一些适当的查询。

答案2

退回邮件不仅可能由您的 MTA(postfix)生成,也可能由“下一跳”电子邮件服务器生成。不要指望使用简单的脚本来解析所有退回邮件。

您可以使用[电子邮件保护]作为信封发件人地址,并使用单独的 ~/.forward 文件重定向退回邮件(邮件发送到您的姓名+退回邮件),如所述Postfix VERP 指南

顺便提一句:

1 不要忘记临时交付问题(DSN:400)。

2 我建议使用维普资讯基于解决方案的跟踪退回(每个消息/收件人退回地址)。

相关内容