PHP でメールを非同期に送信する時に PEAR の Mail_Queue を使用するときのメモです。

Mail_Queue のマニュアル
PEAR :: Manual :: Mail_Queue

上記マニュアルにあるチュートリアルが分かりやすいです。
PEAR :: Manual :: チュートリアル

処理の流れとしては下記のようになります。

  • データベースに送信するメールを貯める
  • cron で定期的に貯まったメールを送信する


メール送信は下記のコードで行います。

$mail_queue->sendMailsInQueue($max_amount_mails);

$max_amount_mail で1回に送る最大送信数を指定します。これをいくつにするか、また cron で実行する間隔をどれくらいにするかなどの調整の方がプログラムの作成よりも大変かもしれませんね。

OpenPNE でも config.php で

define('OPENPNE_MAIL_QUEUE', true);

としてメール送信にメールキューを使用するようにすると PEAR::Mail_Queue を使用して送るようになっていますね。

関連する投稿