使用 Exim 发送邮件到多个目的地

使用 Exim 发送邮件到多个目的地

我想将邮件发送到多个目的地,即 php 脚本和用户邮箱。我使用 Exim 来发送邮件。我已更改 exim 配置文件的路由器和传输部分,如下所示。我设计了一个名为 send_to_site 的自定义传输。我能够将邮件标头发送到 php 脚本,但无法将电子邮件发送到用户邮箱。这是我的自定义传输:

######路由器
catchall_mail:
  driver = accept
  domains = my.server.com
  transport = send_to_site
#####运输
send_to_site:
    driver = pipe
    command = /home/bin/curl http://my.server.com/mailTest.php --data-urlencode "mail@-"
    user = afterlogic
    group = afterlogic
    return_path_add
    delivery_date_add
    envelope_to_add

其中 mailTest.php 是我的 php 脚本。

答案1

我花了很长时间才解决这个问题。在路由器部分,我编写了自己的自定义路由器,它将把电子邮件发送到我想要的 php 脚本。在传输部分,我编写了自己的自定义传输,它将确保使用 curl 传输到所需的脚本。只需在我的/etc/exim.cnf文件中写入以下配置:

############ROUTERS
runscript:
        driver = accept
        transport = run_script
        unseen
        no_expn
        no_verify
############TRANSPORT
run_script:
     debug_print = "T: run_script for $local_part@$domain"
     driver = pipe
     command = /home/bin/curl http://my.domain.com/mailTest.php --data-urlencode $original_local_part@$original_domain

其中 mailTest.php 是我的目标脚本。

答案2

您必须创建两个路由器,其中第一个应有unseen动词。第一个路由器必须将消息传送到脚本,而第二个路由器必须执行将消息传送到用户邮箱的常规操作。

抱歉,我的回答很简短,我是通过手机发帖的。

相关内容