Making The Road Blog

http://makingx.net/blog/

mtr2.0
Making The Road はmakingのお勉強用サイトです.PHP, Javascriptを中心にいろいろ試してoutputしていきたい.
当サイトの訪問者は24時間以内にこんな単語↓で検索されています (マウスオーバーすると単語を含むqueryを表示します!)

さくらであけおめメール自動返信スクリプト

あけましておめでとうございます!
新年になり,あけおめメールが送られてきているかと思いますが,いちいち返信しているのが面倒なのでスクリプトで返信できるようにしてみました!w
環境はPHP@さくらインターネットです.

.mailfilter

まずさくらのメールでhappy-new-yearというアカウントをつくります.
そして/home/{さくらのアカウント名}/MailBox/happy-new-year/.mailfilterというファイルを作り,

to "| /home/{さくらのアカウント名}/***/reply.php"
exit

と記述します.これでhappy-new-year@***.sakura.ne.jpに送られてきたメールに対しreply.phpの処理が行われます.

reply.php

つぎに.mailfilterに記述した処理部分の/home/{さくらのアカウント名}/***/reply.phpをつくります.
こちらを参考にしました.
基本的にはこんな感じ

#!{phpのパス}
< ?php
require_once 'Mail/mimeDecode.php';
 
$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']), 'SJIS', 'ISO-2022-JP');
$body = $structure->body;
$body = preg_replace('/\s*>\s.*/', '', $body);
$body = mb_convert_encoding($body, 'SJIS', 'ISO-2022-JP');
 
if (is_akeome_mail($body)) {
    $to = $from;;
    $title = "A Happy New Year!";
    $from = "From: hogehoge@example.com";
 
    $mail_body = "あけましておめでとうございます!
今年もよろしくお願いします!
 
============
このメールはお正月ワードに反応する自動返信スクリプトにより送信されています.
後ほど本人から返信がきっと送られてくると思います!
============
";
 
    mb_internal_encoding("SJIS");
    mb_language("ja");
    mb_send_mail($to, $title, $mail_body, $from);
 }
 
function is_akeome_mail($body)
{
    $akeome = array(
                    '(明|あ)けまし(て|た)',
                    '(明|あ)けおめ',
                    'ことよろ',
                    '(今年|ことし)もよろ(し|ち)(く|こ)',
                    '(よ|良)い(お)*年になります',
                    '謹賀',
                    '新年',
                    '賀正',
                    'Happy\s*New\s*Year',
                    );
 
    $is_akeome = false;
 
    foreach ($akeome as $a) {
        if (preg_match('/' . $a . '/i', $body, $res) > 0) {
            $is_akeome = true;
            break;        
        }
    }
 
    return $is_akeome;
}

is_akeome_mail()がかなり適当なことになっていますが,この部分をリッチにすれば良い感じの自動返信スクリプトになると思います!
PEARのMail_mimeDecodeを用いています.ファイルの文字コードはSJISで,あと実行権限を忘れずに!

メール転送

最後に携帯のメールの転送設定でhappy-new-year@***.sakura.ne.jpに転送するようにします.
これで携帯に送られてくるメールに対してis_akeome_mail()がtrueなら自動返信されるようになります!

問題点

スクリプトをつくったは良いが,,,,,

あけおめメールがこないよーーーーーーーーーーーwwwwww
(追記) きたけどチェックをくぐりぬけられたので強化!w

カテゴリー: Sakura, PHP | コメント( 0 ) | 2008/01/01 20:03:49 by making
ソーシャルブックマーク: add to hatena hatena.comment (7) add to del.icio.us (0) add to livedoor.clip (1) add to Yahoo!Bookmark (0) Total: 8
トラックバックURL:

Leave a Reply

求人