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

1 月 1st, 2008 in PHP, Sakura users

あけましておめでとうございます!
新年になり,あけおめメールが送られてきているかと思いますが,いちいち返信しているのが面倒なのでスクリプトで返信できるようにしてみました!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に転送するようにします.(AU限定.iphoneでもやりたい場合はこちら)
これで携帯に送られてくるメールに対してis_akeome_mail()がtrueなら自動返信されるようになります!

問題点

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

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

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

  1. koike より:

    ご担当者 様
    初めまして、こんばんは。自動返信スクリプトを使わせて頂きたいと思っております。登録のWEBサイトで
    使用したいのですが、どう設定したらよいか分かりません。アドバイスなど頂ければ幸いです。何卒、宜しく
    お願い申し上げます。

  2. making より:

    コメントありがとうございます.
    koikeさんのサーバー情報が0なのでアドバイスのしようがありません.
    http://www.linux.or.jp/beginners/question.html

  3. debgmq より:

    さくらのサーバ使ってます。
    上記の通り、.mailfilter作ってphpファイル作っても上手く動きません。
    PEARをインストールする必要があるのですか?

  4. debgmq より:

    PEARをインストールしましたが
    500 Internal Server Errorが出てしまいました。

  5. making より:

    情報量が少なくてアドバイスしようがありません
    500エラーは本記事の内容とは関係ないですよね

    http://www.linux.or.jp/beginners/question.html

  6. Your blog is full of interesting articles, thanks for good read

  7. Very interesting blog, bookmarked for the future referrence, what template do you use ?

  8. luki sklep より:

    This article is very interesting, keep us posting..

  9. せぶん より:

    あけましておめでとうございます。

    現在、さくらインターネットを契約しているのですが、
    自動応答機能がないため検索をしていてこちらのページに
    たどり着くことができました。

    まだ見つけたばかりなので設置はしていないのですが、
    これは特定ワードが含まれている場合のみに自動返信をする
    仕組みだと思うのですが、違いますでしょうか?

    こういったことが可能ということであれば、さらに拡大して
    Aという特定ワードが含まれていたらAという内容文で返信、
    Bという特定ワードが含まれていたらBという内容文で返信といった
    自動返信に対応することも可能でしょうか?

    こういったことができるのであればすごい素敵なんですが(>_<)
    さくらに期待したいところですが無理そうなので・・・

Leave a Reply

Recent Posts

よく考えたらこれでいいじゃん http://bit.ly/bsxqE0 MapperとReducer別々にしないとReflection走るな RT @making: multimethodでたくさん書くのが面倒だからこんなマクロ作った http://bit.ly/bsxqE0
* 10年03月11日03時09分

@junkawamoto うお、おれ明日源泉徴収票届く予定w
* 10年03月11日01時55分

@ryushi スプライシングクオートは楽して大量にS式を自動生成したいときに結構使います。よく入力をmapでごにょごにょ加工して~@したり。 単純な例だとこんなことができます http://gist.github.com/328042
* 10年03月11日01時48分

» Twitter

Search

ドミノ・ピザ 5%OFF!

デル株式会社

 iTunes Store(Japan)

 iTunes Store(Japan)

Sony Style(ソニースタイル)

ツートップインターネットショップ(twotop.co.jp)

Recommend

アルゴリズムC++
アルゴリズムC++
¥ 7,980(新品) /¥ 5,100(中古)
データ構造・アルゴリズムの基礎に関して
一通り網羅されている.
一冊机の上に置いておきたい.
C++で書かれているのも珍しい
(古いC++だけど..)

view all

Categories

Tags