質問: mailer-daemonからメールアドレスを抽出 phpでメールの一斉送信を行うシステムを作成しています。現在、下記のような機能を実装しようとして悩んでいます。 (1) phpから多数の宛先にメールを一斉送信 (2) mailer-daemonとなって戻ってきたメールをphpで受信 (3) (2)で戻ってきた宛先はエラーなので、次回以降は送信対象から自動的に除外 (4) (1)に戻る 以下、1日1サイクルごと繰り返し 悩んでいるのは(2)と(3)の部分です。 mailer-daemonとなって返ってきたメールをphpで受信することは出来たのですが、そのmailer-daemonとなったメールが元々どの宛先に送ったものなのか、うまく判断できません。 メールヘッダを見ても元々の宛先は無く、本文から判断するにしてもメールサーバによってmailer-daemonの書式が違うようで、文字列を切り出すことができませんでした。 このように、mailer-daemonのメールから、元々の宛先(エラーとなったメールアドレス)を抽出するにはどのように処理すれば良いのでしょうか?
回答: エラーメールはmultipart(content:type: multipart/report; report-type=delivery-status;)になっていませんか?その中にcontent-type: message/delivery-statusのパートがあれば、その本文に「final-recipient」として記載されていると思いますが、如何でしょうか? #それ以外のフォーマットは手元のメールboxからは見つかりませんでした(汗 text/plainのパートは相手サーバによって違っていてもmessage/delivery-statusの書式は同じじゃないかと思いますが・・・