天気予報を自動メール送信
天気予報を毎朝、携帯電話のメールに送信するスクリプトを10日前に作った。問題なく動作しているようなので、とりあえず公開しておく。
$url = 'http://web1.aaacafe.ne.jp/˜tenki/tenki.xml';
$location = '東京';
$oe = "EUC-JP";
$mailfrom = 'admin@oheso.com';
$mailto = $_SERVER['argv'][1];
require_once './rss_fetch.inc';
$rss = fetch_rss($url);
$subject = $rss -> channel['title'];
$subject = mb_convert_encoding($subject, $oe, "auto");
foreach ($rss -> items as $item ) {
$title = mb_convert_encoding($item['title'], $oe, "auto");
$description = mb_convert_encoding($item['description'], $oe, "auto");
$location = mb_convert_encoding($location, $oe, "auto");
if (ereg($location ,$title)) {
$body .= "$description¥n";
}
}
$body = preg_replace("/<br ¥/>/", "¥n", $body);
$subject = i18n_mime_header_encode(i18n_convert($subject, "JIS"));
$body = i18n_convert($body, "JIS");
$mp = popen("/usr/sbin/sendmail $mailto", "w");
fputs($mp, "MIME-Version: 1.0¥n");
fputs($mp, "Content-Type: text/plain; charset=¥"iso-2022-jp¥"¥n");
fputs($mp, "Content-Transfer-Encoding: 7bit¥n");
fputs($mp, "From: $mailfrom¥n");
fputs($mp, "To: $mailto¥n");
fputs($mp, "Subject: $subject¥n");
fputs($mp, "¥n");
fputs($mp, "$body¥n");
pclose($mp);
同じディレクトリ(この場合は˜/weather/)にMagpieRSSのファイル群を置いておく必要あり。
30 09 * * 1-5 /usr/bin/php -f /home/somin/weather/weather.php mymailaddress@ezweb.ne.jp
これでウィークデイの午前9時半に自動的にメールが送られる。とまぁ偉そうに書いているが、大部分は以下のリンク先を参考にさせていただいた。
トラックバック(0)
このブログ記事を参照しているブログ一覧: 天気予報を自動メール送信
このブログ記事に対するトラックバックURL: http://somin.heteml.jp/mt/mt-tb.cgi/4304
コメントする