メール解析@PHPその7
メール本文からそれに近いURLを知らせるテスト。
Yahoo!デベロッパーのAPIを利用。
もちろん検索ね。
Yahoo!デベロッパーネットワーク - 検索 - ウェブ検索
しかしうまくいかん。。
なにやら今回はsimplexml関数が認識していない。。
あ、さくらレンサバは元々PHP4やった。
最初に書くコードが悪かったかも。
⇒#!/usr/local/bin/php
PHP5に合わせて書くとこうなる。
⇒#!/home/hogehoge/www/cgi-bin/php5.cgi
成功!
面白ぇ〜!
#!/home/hogehoge/www/cgi-bin/php5.cgi <?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"); $keyword = mb_convert_encoding(mb_decode_mimeheader($structure->body), mb_internal_encoding(), "UTF-8"); $data = rawurlencode($keyword); //----------------------------------------// // 必要な処理はここで行って下さい //----------------------------------------// //yahoo!検索URL //appid="自分のアプリケーションIDを入れてね" //&results=1※返ってくる結果を一つに設定 $url = 'http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid="自分のアプリケーションIDを入れてね"&results=1&query='.$data; $xml = simplexml_load_file($url); foreach($xml->Result as $a){ $y_url = $a->Url; } //メール返信 $to = $from; $title = "URLマッチングサービス"; $from = "From: demo@hoge.com"; $body = "「".$keyword."」は下記のURLが一番関連深いでしょう。\n".$y_url; mb_internal_encoding("UTF-8"); mb_language("japanese"); mb_send_mail($to, $title, $body, $from); ?>
しかしなんか変だ。
英語はばっちりだが、日本語がマッチングしない。。
その辺りが怪しい。。
$kw = mb_convert_encoding(mb_decode_mimeheader($structure->body), mb_internal_encoding(), "UTF-8"); $data = rawurlencode($kw);
また改良してみよう。