Exim を使用して複数の宛先にメールを送信する

Exim を使用して複数の宛先にメールを送信する

メールを複数の宛先、つまり 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 番目のルーターはユーザーのメールボックスへの通常の配信を実行する必要があります。

簡潔な回答で申し訳ありません。携帯電話から投稿しています。

関連情報