Веб-сайт 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.
Я ломаю голову здесь, у кого-нибудь есть подсказка?
Все еще не нашли причину проблемы, но добавили некоторый код в 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.8.1. Я борюсь с этой же проблемой уже 2 недели. Простое решение пришло от меня, «включив» каждую опцию в System> Configuration> Advanced. Все новые подтверждения заказа немедленно отправляются лицу, разместившему заказ.
Предыстория: после установки и настройки новой корзины Magento я заметил, что электронные письма проходят только в том случае, если я вручную отправляю их через экраны администратора. Это сказало мне, что настройки SMTP сервера были правильными, но мне было интересно, почему человек, размещающий заказ, не получит подтверждение по электронной почте … никогда. После долгих поисков и чтения я подумал, что это связано с одной из других функций тележки Magento. Таким образом, я вошел в системную конфигурацию на вкладке «Дополнительно» («Система»> «Конфигурация»> «Дополнительно») и обнаружил, что отключил некоторые функции, такие как Sendtofrined, Newsletter и т. Д. Не желая терять время, я просто просмотрел весь список и все включено Теперь у меня есть функция купона, добавить в список желаний функцию и новостную рассылку, которую я не хочу видеть в корзине, но электронные письма проходят сразу и надежно. Теперь я попытаюсь выяснить, какая функция связана с подтверждением заказа по электронной почте в процессе удаления. Но это помогло мне, и я надеюсь, что это поможет кому-то еще без добавления кода в файлы php.