我想将邮件发送到多个目的地,即 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
动词。第一个路由器必须将消息传送到脚本,而第二个路由器必须执行将消息传送到用户邮箱的常规操作。
抱歉,我的回答很简短,我是通过手机发帖的。