2016-12-14 5 views
0

私は注文電子メールが同時に送信されておらず、一部の電子メールもスキップされる問題があります。私はcore_email_queueとcore_email_queue_recipientsをチェックして、最初のテーブルに10のレコードがあり、顧客と管理者がメールを受け取らなかったことを確認しました。どのように私はこのキューの電子メールを処理するのですか?これが将来起こらないようにするために何をすべきですか? 私はcronとそのうまく動作し、5分ごとに動作するようにセットアップを確認しました。Magento注文のメールがランダムに送信されない

SMTPプロフリーエクステンションは、このデフォルトのMagentoメールキュープロセスを置き換えて問題を解決しますか?

おかげ

答えて

0

Magentoの1.9後、注文確認メールはもうチェックアウト時に送信されず、代わりにcronで送信されています。あなたのCronが動作していることを確認してください(あなたはcronログ/var/log/cronをチェックできます)。

また、Magento cronが5分ごとに動作していることを確認してください。ただの小さな変化を行うAOE Scheduler

OR

*/5 * * * * /public_html/cron.sh 

この拡張機能は、Magentoの中でcronジョブを管理するのに役立ちます:あなたはクローンタブ(サーバーなど)でこのように表示されますorder.php (public_html/app/code/core/Mage/Sales/Model/Order.php)(これを無効にすることを忘れないでください)

から

別ソリューション

$mailer->send(); 

OR

へ:Magentoのを皮切り

go to System -> Configuration -> ASCHRODER EXTENSIONS -> SMTP -> Queue Configuration -> Queue Usage -> Never 
0

は、電子メールがチェックアウト時に直接送信されていないが、代わりにキューに登録されている1.9.1。キューはMagento cronジョブで処理されています。

Magento cronjobsに問題はありません。コマンドは正しいです。電子メールを正常に送信。たとえメールの受信者が正しくないとしても。

Magentoはどのようにメールの受信者を決定しますか?テーブルcore_email_queue_recipientsからはテーブルcore_email_queueとの関係があります。

MySQLは外部キーをサポートしているため、関連するデータをテーブル間で相互参照させることができ、外部キーの制約により、この分散データの一貫性を維持できます。

MagentoにCONSTRAINTとFOREIGN KEYを追加するmessage_idをテーブルcore_email_queue_recipientsに追加します。

ALTER TABLE core_email_queue_recipients のADD CONSTRAINT FK_6F4948F3ABF97DE12127EF14B140802A FOREIGN KEY(message_id)UPDATE CASCADE ON DELETE CASCADE ON core_email_queuemessage_id)を参照。

外国キーmessage_idはのテーブルcore_email_queueを参照します。どちらの表も互いに拘束されています。テーブルcore_email_queueは親になり、子としてはcore_email_queue_recipientsとなります。 message_id = 1の行をcore_email_queueから削除した場合。 message_id = 1のすべての行は、core_email_queue_recipientsから自動的にMySQLによって削除されます。

実際の問題は何ですか?私はMySQLデータベースサーバーにログインします。テーブルcore_email_queue_recipientsには外部キー制約がありません。何故かはわからない。多分、彼または彼の開発者はテーブルを削除するでしょう。だから、毎回cronjobs電子メールキューをクリーンアップします。 MySQLサーバーは電子メールキューのみを削除します。削除されたキューの電子メール受信者は無視されます。テーブルcore_email_queue_recipientsのデータの完全性が破損しました。

関連する問題