如何将(exim)电子邮件退回到php文件

时间:2016-05-30 13:38:10

标签: php email swiftmailer centos7 exim

我目前正在使用Centos 7服务器,该服务器使用exim与swiftmailer结合处理电子邮件。当电子邮件退回时,“错误”将发送到我的电子邮件地址。我希望能够将“错误”发送到脚本,而不是像电子邮件那样接收反弹。如果一直在寻找一种方法,但我无法在网上找到答案。

有没有办法实现这一目标?如果是这样,怎么办呢?

1 个答案:

答案 0 :(得分:1)

你必须写一个路由器和一个传输。

路由器应检测发件人<>的退回邮件。因此,您必须将下一个配置放在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

此处消息通过管道传递到使用某些args启动的可执行文件的stdin。这就是全部。