2

メールが Mailgun に転送された場合、元の送信者のアドレスを取得するにはどうすればよいですか?

イベントのチェーンは次のようになります。

  1. originalSender がメッセージを someUser に送信します
  2. someUser はメッセージを Mailgun に転送します
  3. Mailgun が解析済みメッセージをサーバーに POST する

別の言い方をすると:

orignalSender (send)->  someUser (forward)->  mailgun (POST)->  myserver

私が得ることができる最善の方法は、「body-plain」プロパティで正規表現を実行することです。
問題は、電子メール クライアントがこれを異なる方法で送信することです。2 つの例を次に示します。

GMail からの転送 (... を追加しました):

body-plain: "---------- Forwarded message ----------\r\nFrom: Kalle Kalleson <kalle.kalleson@mail.com>\r\nDate: 2014-02-13\r\n ..."

Apple のメールからの転送 (... を追加しました):

body-plain: "(...)Begin forwarded message:\r\n\r\n> From: Kalle Kalleson <kalle.kalleson@mail.com>\r\n> Subject: New color printer\r\n> Date: 11 February, 2014 15:47:19 GMT+1\r\n> 

これを行うにはもっと良い方法があるはずですよね?
前もって感謝します!

4

4 に答える 4

1

Mailgun のサポートと連絡を取ったところですが、別の戦略を提案することはできませんでした。
つまり、メール クライアント間の違いを考慮して、自分で本文を解析します。
私は言うだろう、:-(

ここで、機能リクエストに投票できます。
http://mailgun.uservoice.com/forums/156243-general/suggestions/5528656-extract-the-original-sender-of-a-forwarded-email

誰かがより良い答えを思いつきましたか?

于 2014-02-16T22:39:08.937 に答える
0

探しているものが見つからないかもしれませんが、Mailgun がサーバーに POST するときに、POST データから From フィールドを取得できるはずです。メッセージを解析するために node.js アプリを使用していますが、PHP では次のようになります。

<?php
    $from = $_POST["From"];
    echo "This message is from: ".$from;
?>

あなたが求めているものを見逃していたら、申し訳ありません。

于 2014-07-09T16:08:50.503 に答える
0

いずれの場合も、正規表現を使用するとうまくいくはずです。試す:

/(From:.*>)/g
于 2014-09-02T10:50:05.993 に答える