さくらインターネットで空メール
さくらインターネットの場合、空メール受信・返信プログラムが設置できるのは知っていたが、その方法が他のレンタルサーバと少し違うのは知っていた。
で、実際に試した際に、少しつまずいたのでメモ。
さくらでは maildrop という配信プログラムが使われていて、 /home/USERNAME/MailBox/ の下に各メールアドレスのディレクトリがあります。空メール用のメールアドレスのディレクトリに .mailfilter を設置し、返信メールするプログラムへメールを渡します。
で、上記で作成した「.mailfilter」のパーミッションを「600」にしておく必要がある。
ちなみに、「.mailfilter」の作成はSSHでログインしてviエデイタからできるが、以下の方法でもできる。
さくらインターネットサーバーコントロールパネルから「メールアドレス毎の設定」空メール用のアドレスの「ウェブメール」を開き、「電子メールの転送」もしくは「迷惑メールフィルタ」を設定。
この辺は、以下の記事を参考にした。
http://never-ever.info/modules/news/index.php?page=article&storyid=305
「.mailfilter」には、以下の記述をした。
cc "| /usr/local/bin/php /home/USERNAME/SCRIPT_PATH"
(プログラムに渡しつつ、受信したメールをそのままメールボックスにも入れたいならccで。
受信したメールをメールボックスにも入れる必要がない場合はtoで。
「USERNAME」や「SCRIPT_PATH」は、各自の環境に合わせて適宜設定)
空メールの受信をトリガーにして起動するプログラムに関しては、実際にはパーミッションの設定をする必要はない。
=========================
上記の設定で、メールの受信をトリガーに、プログラムの起動には成功したのだが、実際に空メールを受け取り、メールを
返信するプログラムの動作確認をしたところ、以下のようなエラーが出た。
----- The following addresses had permanent fatal errors -----
(reason: 255)
----- Transcript of session follows -----
554 5.3.0 unknown mailer error 255
エラーログがさくらの環境では見れないので、ググッたところ、以下のページの方法で解決した。
http://www3.atword.jp/nana/archives/category/php/mobile
$path = '/home/アカウント名/PEAR_PATH/';
set_include_path(get_include_path() . PATH_SEPARATOR .$path);
さくらの場合、php.iniではなく、実行ファイルに直接パスを指定する必要がありそうだ。