人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのスクリプトからメールを送信し、送信したメールに対しての返信メールを
POPサーバーから受信して、どのメールに対しての返信かをスレッド構造で管理
したいと思っています。つまり普通のメーラーでやっていることをWeb上でPHPで
実現したいと思います。
送信したメールのIDのようなものはDBに保存しておいてPOPサーバーから受信した
メールのヘッダーを調べれば、どのメールへの返信かが分かるのでしょうか。
また送信したメールのIDのようなものをPHPで取得できるのかも知りたいです。
よろしくお願いいたします。


●質問者: orihomot
●カテゴリ:インターネット ウェブ制作
✍キーワード:dB PHP POP Web サーバー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tezcello
●35ポイント

メール送信時に message_id をサーバ(あるいはメーラ、今回はPHPスクリプト)で付けて送ります。

message_id (RFCでは、Message-ID ?)は、mail(), mb_send_mail() に指示できるのでは?

http://jp.php.net/manual/ja/function.mail.php

返信をすると、in_reply_to というのをメーラが付けて送ります。

なので、読出し時に in_reply_to をチェックすれば、どの message_id に対する返信かはわかる事になっています。

http://www.php.net/manual/ja/ref.imap.php

http://www.php.net/manual/ja/function.imap-headerinfo.php

ですが、メーラによって in_reply_to を付けてこないものがあるようで、完全ではないようです。

◎質問者からの返答

ありがとうございました。大変参考になりました!!


2 ● b-wind
●35ポイント

通常のメールソフトで送信したメールであれば、必ずメールヘッダに

Message-Id: <AABBCC@smtp.example.jp>

等のように Message-Id がついています。


同じく返信したメールには先のヘッダに加えて、

In-Reply-To: <AABBCC@smtp.example.jp>

というヘッダがついて、先のメールの返信であることがわかります。


通常のメールソフトもこのヘッダを見てスレッド化しているだけですので同じことをやればよいでしょう。

ただし、携帯のメールソフト等一部は In-Reply-To ヘッダをつけてくれないのでどうやってもスレッド化できない

場合もあります。

InReplyToプロパティ

◎質問者からの返答

ありがとうございます。

参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ