Прежде всего, да, это еще один вопрос / тема об электронной почте 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
запуск каждую минуту и откуда мы видим, что он на самом деле выполняется.
exception.log
или, возможноsystem.log
, есть какие-нибудь подсказки там?