メール解析@PHPその6
.mailfilterのパーミッションを600にしてみた。
しかし不具合が。。
改めて.mailfilterの内容をチェック。
最後に改行で1行あけて保存してみるとエラー内容が変わった。
なんか、メールを受け渡すプログラムに問題があるようだ。
あちゃ、mimeDecode.phpの位置を認識できていないみたいだ。
修正し、成功!
なぜだろ。。改行の関連がまだ理解できていない汗
併せてPEARのMail_mimeDecodeの使い方を理解するために
返ってくる内容をコントロールしてみる。
送るメール本文に自分の名前を入れると「あなたの名前は"入力した本文内容"ですか?」と
返ってくるコード書けた。
些細な感動!!
そのコードメモ。
#!/usr/local/bin/php <?php //PEARのライブラリ読み込み※ライブラリの位置に注意 require_once("../pear/PEAR/Mail/mimeDecode.php"); // PEAR MimeDecode //メールソースを標準入力から読み込み $source = file_get_contents("php://stdin"); if(!$source) { exit(); // 読み込み失敗 } //メール解析 $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $decoder = new Mail_mimeDecode($source); $structure = $decoder->decode($params); $from = mb_convert_encoding(mb_decode_mimeheader($structure->headers['from']), mb_internal_encoding(), "auto"); $body = mb_convert_encoding(mb_decode_mimeheader($structure->body), mb_internal_encoding(), "UTF-8"); //----------------------------------------// // 必要な処理はここで //----------------------------------------// //メール返信 $to = $from; $title = "メールテスト"; $from = "From: demo@hoge.com"; $body = "あなたの名前は".$body."ですか?"; mb_internal_encoding("UTF-8"); mb_language("japanese"); mb_send_mail($to, $title, $body, $from); ?>
次のチャレンジははその本文内容をwebAPIとなんかできないだろうかと。