まず第一に、これは1.9.1電子メールキューに関する別の質問/トピックです。しかし、それは(ような任意のcronの問題についての話ではありません、このまたはこれ)または(のように使用されていない新しいキュー機能に関する本)。
私たちの場合、問題は、キュー(core_email_queue
およびcore_email_queue_recipients
)が新しい注文または注文の更新に関するメールをまったく受け取らないため、注文関連のメールが送信されなくなること、cronが完全に機能し、手動でメールを追加することですキューは機能し、送信されます。
奇妙なことに、テスト環境ではすべてが機能していました。今日、最初の数分でライブになった場合でも、すべてのメールは処理されましたが、数分後(もちろんライブシステムをさらに変更することなく)、新しいメールはキューにまったく追加されませんでした。最初の顧客がPayPal Expressを使用したときにこれが起こったように見えますが(確かではありません)、事前にテストしていませんでした:-/そして実際、PayPal Expressロジックで古いsendNewOrderEmail()
関数を使用してカスタムオーバーライドを使用していました。しかし、使用するようにパッチを適用した後でも、電子メールを再び機能させることはできませんでしたqueueNewOrderEmail()
。
したがって、最初の質問は、古い関数が何らかの矛盾を引き起こして「壊れた」可能性があるということです。メールキュー?それとも、これは単なる大きな偶然であり、まったく異なる説明がありますか?
問題を見つけることができませんでしたが、もちろんできるだけ早く再び電子メールを使用する必要があったため、別のコアオーバーライドに進みました。ではMage_Core_Model_Email_Template_Mailer
(でコピー中のコースのlocal
)私たちは、ライン76をコメントアウト:->setQueue($this->getQueue())
これは、キューバイパスに思えるし、すべてのメールが古い方法を再度送信されます。
ただし、コアオーバーライドの数を最小限に抑えたいため、他の副作用や、Magentoコードをより深く理解している人からのその他のヒントや解決策に直面するかどうかは現時点ではわかりませんメールキューをいただければ幸いです。
1.9.2の更新:1.9.2へのアップグレードで、電子メールキューを再度詳しく調べたところ、問題を再現できませんでした。ただし、1.9.1の問題が何であるかMage_Core_Model_Email_Template_Mailer::send()
はまだ不明であり、ここで説明した方法でオーバーライドが機能するため、キューを使用していません。このようにして、本番環境でしばらくしてから同じ問題が再び発生しないようにしたいと考えています。
tl; dr: 1.9.1では電子メールキューが機能していません。76行目をコメントアウトするMage_Core_Model_Email_Template_Mailer
と電子メールキューがバイパスされ、メールが再度送信されますが、これは良い解決策ではありません。これをどのように改善できますか?
core
れません(カスタマイズされていないものや拡張機能が適切に配置されていることを確認するために差分を作成したり、変更されていない)。権限は古い設定と一致し、ログ/レポートはクリーンです。
core_email_queue_send_all
毎分実行するように設定し、実際に実行されることがわかるAoe_Schedulerを使用する(そして常に使用する)ことを追加する必要があります。
exception.log
またはおそらくsystem.log
、そこに何か手がかりがありますか?