Magento отправляет электронные письма с подтверждением заказа только при запросе вручную

Веб-сайт Magento, который я поддерживаю, внезапно прекратил отправлять подтверждения заказов и / или счета.

Ничего не изменилось в настройках электронной почты, и все они соответствуют общим правилам Magento. Я попытался отправить тестовое письмо с помощью следующего сценария php, чтобы убедиться, что оно не вызвано какими-либо настройками сервера:

    <?php
$to = "[email protected]";
$subject = "Test email";
$message = "This is a test email.";
$from = "[email protected]";
$headers = "From:" . $from;
if (mail($to, $subject, $message, $headers)) {
echo("Your message has been sent successfully");
} else {
echo("Sorry, your message could not be sent");
}
?>

Тестовое сообщение доставлено безупречно.

Я установил SMTP Pro Email плагин чтобы увидеть, будет ли изменение настроек управлять результатом; ничего такого. Плагин предлагает возможность отправлять тестовое электронное письмо, которое снова доставляется без ошибок.

Еще более странно, нажав кнопку «Отправить письмо» в бэкенде Magento для заказа делает доставить письмо. Подпишитесь на рассылку делает привести к подтверждению подписки по электронной почте. Понятно, что сайт Можно отправлять письма, это просто почему-то не срабатывает для подтверждения заказа и счетов.

И да, оба

Система> Конфигурация> Продажи> Продажи электронной почты> Заказ> Включено

а также

Система> Конфигурация> Продажи> Продажи электронной почты> Счет-фактура> Включено

установлены в да и включите адрес BCC.

Так же,

Система> Конфигурация> Дополнительно> Система> Настройки отправки почты> Отключить связь по электронной почте

установлен в нет.

Я использую Magento CE 1.6.2 на этом сайте, так что это не обычная проблема cron для работы с версией 1.9.

Я ломаю голову здесь, у кого-нибудь есть подсказка?

1

Решение

Все еще не нашли причину проблемы, но добавили некоторый код в succes.phtml для принудительной отправки почты при загрузке этой страницы:

<?php
$order = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();

$order->loadByIncrementId($incrementId);

try
{
$order->sendNewOrderEmail();
} catch (Exception $ex) {  }
?>

Это не самое элегантное решение, но по крайней мере клиенты получают подтверждение заказа через этот обходной путь.

1

Другие решения

Я использую версию 1.8.1. Я борюсь с этой же проблемой уже 2 недели. Простое решение пришло от меня, «включив» каждую опцию в System> Configuration> Advanced. Все новые подтверждения заказа немедленно отправляются лицу, разместившему заказ.

Предыстория: после установки и настройки новой корзины Magento я заметил, что электронные письма проходят только в том случае, если я вручную отправляю их через экраны администратора. Это сказало мне, что настройки SMTP сервера были правильными, но мне было интересно, почему человек, размещающий заказ, не получит подтверждение по электронной почте … никогда. После долгих поисков и чтения я подумал, что это связано с одной из других функций тележки Magento. Таким образом, я вошел в системную конфигурацию на вкладке «Дополнительно» («Система»> «Конфигурация»> «Дополнительно») и обнаружил, что отключил некоторые функции, такие как Sendtofrined, Newsletter и т. Д. Не желая терять время, я просто просмотрел весь список и все включено Теперь у меня есть функция купона, добавить в список желаний функцию и новостную рассылку, которую я не хочу видеть в корзине, но электронные письма проходят сразу и надежно. Теперь я попытаюсь выяснить, какая функция связана с подтверждением заказа по электронной почте в процессе удаления. Но это помогло мне, и я надеюсь, что это поможет кому-то еще без добавления кода в файлы php.

1

По вопросам рекламы [email protected]