【问题标题】:How to send an (exim) email bounce to a php file如何将(exim)电子邮件退回到 php 文件
【发布时间】:2016-09-28 08:51:39
【问题描述】:

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

有没有办法做到这一点?如果可以怎么办?

【问题讨论】:

    标签: php email swiftmailer centos7 exim


    【解决方案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
    

    这里的消息通过管道传递到带有一些参数的可执行文件的stdin。就是这样。

    【讨论】:

    • 感谢您的回复,但这会导致:预期的响应代码为 220,但得到代码“”,带有消息“”
    • 您是如何得到响应的?在哪里?
    • 这是我尝试发送电子邮件后从 swiftmailer 收到的回复。
    • 我通过在“bounce_processor”处添加修复了错误,但它不运行脚本
    • 糟糕!抱歉打错了!脚本应该可以由有效的exim 用户执行——通常是mailnull。查看 exim 日志了解详细信息。
    猜你喜欢
    • 2013-02-18
    • 2020-08-26
    • 1970-01-01
    • 2014-01-26
    • 2017-06-07
    • 2010-11-03
    • 2017-05-08
    • 1970-01-01
    • 2011-05-24
    相关资源
    最近更新 更多