【发布时间】:2016-09-28 08:51:39
【问题描述】:
我目前正在使用 exim 结合 swiftmailer 处理电子邮件的 Centos 7 服务器。当电子邮件退回时,“错误”将发送到我的电子邮件地址。我希望能够将“错误”发送到脚本,而不是作为电子邮件接收退回。如果一直在寻找一种方法来做到这一点,但我也无法在网上找到答案。
有没有办法做到这一点?如果可以怎么办?
【问题讨论】:
标签: php email swiftmailer centos7 exim
我目前正在使用 exim 结合 swiftmailer 处理电子邮件的 Centos 7 服务器。当电子邮件退回时,“错误”将发送到我的电子邮件地址。我希望能够将“错误”发送到脚本,而不是作为电子邮件接收退回。如果一直在寻找一种方法来做到这一点,但我也无法在网上找到答案。
有没有办法做到这一点?如果可以怎么办?
【问题讨论】:
标签: php email swiftmailer centos7 exim
你必须写一个路由器和一个传输。
路由器应检测发件人<> 的退回邮件。所以你必须将下一个配置放在routers 部分的开头:
begin routers:
bounce_processor:
driver = accept
condition = ${if eq{$sender_address}{"<>"}}
transport = bounce_script
unseen
. . . . .
动词unseen 表示消息处理不应在匹配的路由器后停止,而是同时以两种不同的方式处理消息。一种方式通向收件箱,而另一种方式通向脚本。
接下来您必须创建传输。运输顺序无关紧要:
bounce_script:
driver = pipe
command = /path/script -arg1 -arg2
这里的消息通过管道传递到带有一些参数的可执行文件的stdin。就是这样。
【讨论】:
exim 用户执行——通常是mailnull。查看 exim 日志了解详细信息。