さくらインターネットで空メール

さくらインターネットの場合、空メール受信・返信プログラムが設置できるのは知っていたが、その方法が他のレンタルサーバと少し違うのは知っていた。

で、実際に試した際に、少しつまずいたのでメモ。

さくらでは 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ではなく、実行ファイルに直接パスを指定する必要がありそうだ。

No comments yet.