さくらであけおめメール自動返信スクリプト
あけましておめでとうございます!
新年になり,あけおめメールが送られてきているかと思いますが,いちいち返信しているのが面倒なのでスクリプトで返信できるようにしてみました!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








