MAILER-DAEMONからメールアドレスを抽出する方法

このQ&Aのポイント
  • PHPで作成したメールの一斉送信システムで、MAILER-DAEMONから返ってきたメールの元々の宛先(エラーとなったメールアドレス)を抽出する方法について教えてください。
  • MAILER-DAEMONとなって戻ってきたメールのメールヘッダや本文から元々の宛先を判断する方法を試しましたが、うまくいきませんでした。
  • MAILER-DAEMONのメールからエラーとなったメールアドレスを抽出する処理方法についてアドバイスをいただけますか?
回答を見る
  • ベストアンサー

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のメールから、元々の宛先(エラーとなったメールアドレス)を抽出するにはどのように処理すれば良いのでしょうか?

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

エラーメールはmultipart(Content:type: multipart/report; report-type=delivery-status;)になっていませんか?その中にContent-Type: message/delivery-statusのパートがあれば、その本文に「Final-Recipient」として記載されていると思いますが、如何でしょうか? #それ以外のフォーマットは手元のメールBOXからは見つかりませんでした(汗 text/plainのパートは相手サーバによって違っていてもmessage/delivery-statusの書式は同じじゃないかと思いますが・・・

rubysworld
質問者

補足

どうもありがとうございます。 私が試した範囲では、Gmailのmailer-daemonはmultipartになっていませんでした。text/plainのpartに Delivery to the following recipient failed permanently: xxxxxxxx.gmail.com Technical details of permanent failure: Google tried to deliver your message, but it w.................. のような感じです。 お手元のメールが全てmultipartなのであれば、Gmailだけ特別なのかもしれませんね。となると、Gmailだけ特別扱いしてやれば行けそうな気がしてきました。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

補足です。 そもそも「送信元SMTPが相手先SMTPからの応答で送れないと判断して返してくる」ケースと、「相手先SMTPから直接返ってくる」ケース(相手先がいったん受け取ってからエラーを返してくる)がありますよね。 送信先がGMailだと(GMailのSMTPからではなく)送信元SMTPからエラーメールが返っていませんか?ウチのSMTPはこのケースでもmultiupartが返りますが、こればっかりは(自分側の)SMTP次第です。 #逆に「相手先SMTPから」だと、ほとんどがmultipartになっていると思うのですが・・・ その切り分けをしてみてください。

rubysworld
質問者

お礼

ひとまずmultipartの前提で実装することにしました。どうもありがとうございます。multipart以外で送られてくるものについては、Try & Errorでその都度実装することにします。

関連するQ&A

  • mailer-daemon

    知り合いとメールをしていて、こちらからメールを送ったらmailer-daemonが返ってきました。 このmailer-daemonの存在は知っているので、本文の英文を調べたりして、返ってきた原因は「宛先が間違っている」ということが分かりました。 しかし私はいつものように、右クリックして「送信者に返信」を選んでいたので、宛先が間違っているとは思えませんし、その知り合いはメールアドレスを変えたら教えてくれると思います。 また、mailer-daemonの本文中に、「送信者のアドレス(私のメールアドレス)」と、「受信者のアドレス(知り合いのメールアドレス)」、そして「まったく知らない携帯のアドレス」がありました。 この携帯のアドレスは私のものではありません。 それで、多分その知り合いが、来たメールを携帯に転送するように設定しているのだと思うのですが、 この場合、「知り合いが携帯のアドレスを変更したが、設定を変更してはいないためにmailer-daemonが来た」と考えてよろしいでしょうか? また、携帯のアドレスを変更しててもパソコンのアドレスを変更していなくてmailer-daemonが来た場合、携帯に転送はされていなくてもパソコンのほうにはメールが到着しているのでしょうか? 知り合いとは他に連絡手段が無く、困っています。助けてください! ちなみに私はOutlook Expressを使用して、メールの送受信を行っています。相手は分かりません。

  • 届いたメールをMailer-Daemonとして相手に戻せる?

    メールを受信した後に、そのメールを送信して来た相手に、Mailer-Daemonで戻すことはできるのでしょうか? メール送信後に相手が携帯のメールアドレスを変更した場合はMailer-Daemonで戻ってくるのでしょうか?それから、着信拒否かなにかに設定すると、受信せずにMailer-Daemonで戻るのでしょうか? 実は友人と連絡取れなくて困っているのですが、友人がシャットダウンしているのか、メールのトラブルなのかがわからないのです。 よろしくお願いいたします。

  • MAILER-DAEMON

    受信したメールに返信したら MAILER-DAEMON@softbank.ne.jp から送信できないとメールがきました どのような理由が考えられますか

  • MAILER-DAEMON

    複数のアドレスに一斉送信した後、MAILER-DAEMONで戻ってくる場合に、文章内に送信不能なアドレス先が添付されていない時があるので、確認が取れません。対処法を教えてください。また、MAILER-DAEMONが返ってこないにも関わらず、相手に送れていない事があるようです。なぜでしょうか?

  • MAILER-DAEMONからのメール

    MAILER-DAEMONからは送信エラーで戻ってくるメールと思っていたのですが、 1年も前に送信したメールが戻ってきました。普通は送信して数分とか数時間で戻ってくるなら分かるのですが 1年前のメールが戻ってくるのはなぜでしょうか?ちょっと気味が悪いです。 メール内容は私が打ったであろうメールでした。 また同じ経験のあるかたおりませんでしょうか?

  • MAILER-DAEMON

    softbankの携帯にYahooからメールすると MAILER-DAEMON@softbank.ne.jpから送信先エラーにより、配信されませんでした。となって帰ってきます。 しかも2日位経ってから戻ってくるので何とも話しになりません。 私はauの携帯を使っているのでそちらからメールしてみると 届くようです。 受信BOXが一杯になるとこういうエラーが出る事があると 聞いた事があるのですがauの携帯からは届いているので そういう事でも無い様な気もします。 対処方法はあるのでしょうか。

  • MAILER DAEMONって何?

    MAILER DAEMONというアドレスからメールが来ました。 調べたら、送信エラーの時に来るみたいなんですが、私は誰にもメールを送っていません。母にメールを送りましたが、普通に送れました。 知らずに本文はもう読んでしまったんですが、放っておいても大丈夫でしょうか?不安です。ちなみにガラケーです。

    • 締切済み
    • au
  • MAILER-DAEMON@について

    今、中国に里帰りをしてる友人にお正月(1/1午前1:30~)メールを送りましたが ソフトバンクからdocomoの携帯にメールを送ったらMAILER-DAEMON@softbank.ne.jpからエラーレポートが届きました。 送信するとすぐMAILER-DAEMON@がsoftbankより返ってきます。 文面は「送信されたメッセージはお届けできませんでした。」と表示し 送信日時の最後に+0900と付いてます。 クリスマス前までお正月を過ぎたら食事に行こうと約束し 1月1日まで連絡のやり取りはなかったのですが・・・。 ・相手がメールアドレスを変えた ・受信拒否にしている ・メールサーバーがいっぱい の、どれかわかりません。 くわしい方教えてください。お願いいたします。

  • 大量に届くMAILER-DAEMONに困ってます・・・(1)

    初心者なもので、どうしていいのかわからず、困っています。 少し前に送信名「MAILER-DAEMON@dsmtp15.dion.ne.jp」 (@以下はそれぞれ違う)     件名「Returned mail:User unknown」 といったメールが大量に送られてきました。1日50通ほど・・・ こちらで過去の質問なので調べてみたら、自分が送った相手のアドレスなどが 間違っていた場合などに宛先不明のお知らせのようなものだと説明してありましたが、いつもメールを送る相手はたいてい決まっているのでそんなことはありませんん。 本文の書いてあるアドレスは自分のアドレス帳に登録している友達のものもあれば、全く見覚えのないものもあります。 そんなメールが50通近くも一気にきてびっくりしました。 とりあえず全て削除したのですが、次の日またメールを受信したら、おなじようにMAILER-DAEMONがきました。前日と同じものもあれば、新たなものもあり数も増えていました。 どうしていいのかわからず、一通づつ「メッセージ」→「メッセージからルールを作成」→「送信者のユーザーが含まれている場合」「サーバーから削除する」にチェック をし、受信できないように設定してみました。(かなりしんどかった・・) そうすると、大量に送られてくることはなくなり、しばらく普通にメールができていました。続く

  • メールが返ってきてしまいます。(MAILER-DAEMON@y8.dion.ne.jp <MAILER-DAEMON@y8.dion.ne.jp>)

    メールを送っても帰ってきてしまいます。 題名:MAILER-DAEMON@y8.dion.ne.jp <MAILER-DAEMON@y8.dion.ne.jp> 内容:送信先のメールボックスが一杯のため、送信できませんでした。 Your mail sent on: Fri, 8 Dec 2006 23:31:39 +0900 Could not be delivered to: <aaaaa@y8.dion.ne.jp> As their mailbox is full. という感じで返ってきてしまいます。 送ったメールはJPG画像ファイルが二つ付いたメールです。 相手方には何度も送受信してもらったので、サーバにメールが貯まってしまったということではないと思います。 それともこれはパソコンの受信トレイが一杯ということなんでしょうか? 解決法が分かる方いましたら、お願いします。

専門家に質問してみよう