日: 2008年11月30日

【EC-CUBE】メルマガの配信予約機能を使う(cron)

メルマガはデフォルトでは、配信設定したときに配信される。

これを、CRONを使って予約配信に変更し、30分ごとにメール配信予約ができるようにする。(*利用しているサーバがCRONによるJOBの予約に対応していること。)

その1)サーバのコンパネなどで下記コマンドのCRON設定を行う。

0,30 * * * * cd /(ECCUBEへのパス=/data/install.phpで確認すると良い)/html/admin/mail/; /usr/local/php/bin/php -f /(ECCUBEへのパス=/data/install.phpで確認すると良い)/html/admin/mail/sendmail.php 2>&1 > /dev/null

ちなみにcPanelの場合は、CRON設定画面でAdvanced(Unix Style)をクリック→
1つ目のフォーム:*/30
2つ目のフォーム:*
3つ目のフォーム:*
4つ目のフォーム:*
5つ目のフォーム**
6つ目のフォーム*cd /(ECCUBEへのパス=/data/install.phpで確認すると良い)/html/admin/mail/; /usr/local/php/bin/php -f /(ECCUBEへのパス=/data/install.phpで確認すると良い)/html/admin/mail/sendmail.php 2>&1 > /dev/null
を入力。

/usr/local/php/bin/phpは、/usr/bin/phpの場合もあるので、サーバのパスを確認すること。
Add Cronjobボタンをクリックして登録。上のフォームには、CRONが実行されたときに実行結果を送りたい管理者のメアドを入力しておく。

その2)EC-CUBE設定を行う。

管理画面→システム設定→パラメータ設定で、
[MELMAGA_BATCH_MODE]のパラメータを「false」から「true」へ変更。

管理画面→メルマガ管理でメールの配信を設定していくと、途中で予約配信の時間指定ができるようになっているので、30分単位で時間を入れて予約。毎時0分/30分に配信予約が入っているかの確認がCRONで送られてくる。

携帯メールの場合など設定を間違って夜中にお客さんのところにメールが届いた、といったミスが無いように、最初によくチェックしておくこと。

あとは、メルマガ配信予約で日時指定のときに、日につきの数値が入ってしまうバグがrので、/data/class/pages/admin/mail/LC_Page_Admin_Mail.phpの
292行目あたり「$this->arrNowDate[‘day’] = isset($_POST[‘send_day’]) ? $_POST[‘send_month’] : “”;」となってしまっているのを、「$this->arrNowDate[‘day’] = isset($_POST[‘send_day’]) ? $_POST[send_day] : “”;」と修正する。