
我想將郵件發送到多個目的地,即發送到 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
動詞。第一個路由器必須將訊息透過管道傳輸到腳本,而第二個路由器必須執行到用戶郵箱的常規傳遞。
抱歉回答簡短,我是透過電話發文的。