
メールを複数の宛先、つまり PHP スクリプトとユーザーのメールボックスに配信したいと考えています。メールの配信には Exim を使用しています。以下に示すように、Exim 構成ファイルの Routers セクションと Transport セクションを変更しました。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
2 つのルーターを作成する必要があります。最初unseen
のルーターには動詞が必要です。最初のルーターはメッセージをスクリプトにパイプする必要があり、2 番目のルーターはユーザーのメールボックスへの通常の配信を実行する必要があります。
簡潔な回答で申し訳ありません。携帯電話から投稿しています。