メインメニュー
Valid XHTML 1.0 Transitional Valid CSS!
PHP : さくらインターネットで、メール自動返信をする
投稿者 : root 投稿日時: 2010/01/11 (18875 ヒット)

サイトでの会員登録などで、空メールを受信すると自動で登録用URLなどを返信したい場合があるかと思います。
さくらインターネットで、自動メール返信するスクリプトを使用する方法をご紹介します。

.mailfilterでPHPへメールを転送する

以下の場所に.mailfilterファイルを作成します。
/home/{さくらアカウント名}/MailBox/{メールアカウント名}/.mailfilter

  1. to "| /usr/local/bin/php -q /home/{さくらアカウント名}/www/reply.php"
  2. exit
これで、受信メールをreply.phpで受け取ります。

サーバーに受信メールを残したい場合は、先頭の「to」を「cc」に変えます。
  1. cc "| /usr/local/bin/php -q /home/{さくらアカウント名}/www/reply.php"
  2. exit

受信メールを解析し、自動返信メールを送信する

PEARのMail_mimeDecodeを使用して、受信メールを解析します。

  1. #!/usr/local/bin/php -q
  2. <?php
  3. //PEARのパスを設定
  4. $path = '/home/{さくらアカウント名}/pear/PEAR/';
  5. set_include_path(get_include_path() . PATH_SEPARATOR . $path);
  6. require_once 'Mail/mimeDecode.php';

  7. //受信メールから読み込み
  8. $params['include_bodies'] = true;
  9. $params['decode_bodies'] = true;
  10. $params['decode_headers'] = true;
  11. $params['input'] = file_get_contents("php://stdin");
  12. $params['crlf'] = "\r\n";
  13. if (!$params['input']) {
  14.     // 読み込み失敗
  15.     exit();
  16. }
  17. $structure = Mail_mimeDecode::decode($params);

  18. //送信者のメールアドレスを抽出
  19. $mail = $structure->headers['from'];
  20. $mail = addslashes($mail);
  21. $mail = str_replace('"','',$mail);
  22. $mail = preg_replace('/(^.*<|>$)/', '', $mail);

  23. // メール作成
  24. $from = {メールアドレス};
  25. $head = "From: $from\n";
  26. $subject = 'メール件名';
  27. $body = 'メール本文';

  28. // メール送信
  29. mb_language('japanese');
  30. mb_internal_encoding('EUC-JP');
  31. mb_send_mail($mail, $subject, $body, $head, $from);
  32. ?>


この記事に関連した記事

印刷用ページ