受け取ったメールの内容をPHPで取得する方法!
特定のメールアドレス宛にメールを送信して
特定のPHPを実行させるような場合、
送られたメールの内容をPHPから取得して整形して
使用したい場合があるでしょう。
※ メール送信で特定のPHPを実行させる方法は
「qmail メール プログラム 起動」などと検索してください。
そのような場合は、標準入力から以下のように情報を取得します。
$stdin = file_get_contents('php://stdin');
するとメールの情報がずらっと$stdinに入りますので、
これをゴリゴリ整形してもいいですが、
まず、
ここからmimeDecode.phpをダウンロードして
適宜require_onceしておきます。
(デフォルトで入ってなければ)
そして、たとえば
require_once 'mimeDecode.php'; $stdin = file_get_contents('php://stdin'); $decoder = new Mail_mimeDecode($stdin); $params = array("include_bodies"=>true); $structure = $decoder->decode($params);
このようにすると、$structureからメールの情報がわかりやすく取得できます。
件名を取得したい場合は、
$subject = mb_convert_encoding(mb_decode_mimeheader($structure->headers["subject"]),mb_internal_encoding(), "auto");
こうです。
本文を取得したい場合は、
$body = $structure->body;
こうです。
送信者の情報は
$subject = mb_convert_encoding(mb_decode_mimeheader($structure->headers["from"]),mb_internal_encoding(), "auto");
こうです。
このように、標準入力の情報をもとに
上手に内容を分解してくれますから便利です。
その他、文字コードやもろもろの情報も、
$structureに入っていますので、var_dump()して確認の上適宜使用してください。
また、decode()に渡すパラメータは、
ここを参考にしてください。