Письма с сайта не доходят - разбор причин по убыванию частоты
Заказ оформлен, а письма нет ни у покупателя, ни у менеджера. Разбираем причины по убыванию частоты: письмо теряется на четырёх разных участках пути.
С чего начать
Смотрим, дошло ли дело до создания письма:
$res = CEvent::GetList('ID', 'DESC', ['EVENT_NAME' => 'SALE_NEW_ORDER']);while ($e = $res->Fetch()) { printf("%s %s -> %s успех=%s\n", $e['DATE_INSERT'], $e['EVENT_NAME'], $e['C_FIELDS'] ?? '', $e['SUCCESS_EXEC']);}// признак успеха 'N' означает, что запись очереди ещё не отправлена// пусто - письмо не создавалось вовсе, значит дело в событии или шаблоне// имя события подставляют своё: SALE_NEW_ORDER, USER_PASS_REQUEST и другиеПисьмо проходит три ступени: событие, шаблон и отправка. Пустая очередь означает, что до отправки дело не дошло, и разбирать настройки почтового сервера в этом случае бессмысленно.
Проверяем шаблоны и их привязку к сайту:
$res = CEventMessage::GetList([], ['EVENT_NAME' => 'SALE_NEW_ORDER']);while ($m = $res->Fetch()) { printf("шаблон=%d сайт=%s активен=%s кому=%s\n", $m['ID'], $m['LID'], $m['ACTIVE'], $m['EMAIL_TO']);}// шаблон другого сайта на мультисайте не сработает: привязка идёт по сайтуСобытие без активного шаблона своего сайта не даёт письма. Это же объясняет случай, когда на одном сайте установки письма ходят, а на втором нет при одинаковых настройках модуля.
Смотрим, приняла ли письмо почтовая программа сервера:
tail -50 /var/log/maillog | grep -i 'status='mailq | tail -20grep -c 'to=<' /var/log/maillog # сколько писем сервер вообще принял# status=sent означает принято дальше, deferred - висит в очереди сервераОтправка с сайта и доставка получателю - разные вещи. Строка об успешной сдаче письма означает лишь, что его принял следующий сервер, а не что оно легло в ящик получателя.
Причины
-
Шаблон выключен или привязан к другому сайту примерно 30% случаев
ПризнакОчередь пуста, в журнале событий нет ни одной записи об этом письме.
ПроверкаСмотрим список шаблонов события и их признак активности вместе с привязкой к сайту.
Что делатьВключаем шаблон нужного сайта и проверяем, что событие вызывается на этом сценарии.
-
Письма стоят в очереди и не отправляются примерно 25% случаев
ПризнакЗаписи в очереди накапливаются, а признак успешной отправки у них не выставлен.
ПроверкаСмотрим настройку отправки почты и работу агентов, которые разбирают очередь.
Что делатьЧиним запуск агентов по расписанию: без них очередь копится и письма не уходят.
-
Почтовая программа сервера не настроена примерно 20% случаев
ПризнакВ журнале почты нет ни одной записи о письмах сайта, очередь сервера пуста.
ПроверкаОтправляем пробное письмо из консоли и смотрим журнал почтовой программы.
Что делатьНастраиваем отправку через внешний почтовый сервис: локальная отправка на своём адресе доверия не вызывает.
-
Письмо уходит, но попадает в спам примерно 15% случаев
ПризнакВ журнале отправка успешна, письмо находится в папке нежелательной почты.
ПроверкаПроверяем записи домена, подтверждающие право сервера отправлять от его имени.
Что делатьНастраиваем записи домена и подпись писем, а адрес отправителя берём на своём домене.
-
Адрес получателя задан неверно примерно 10% случаев
ПризнакПисьма покупателю приходят, а менеджеру нет, или наоборот.
ПроверкаСмотрим поле получателя в шаблоне и настройки адресов магазина.
Что делатьПравим адрес в шаблоне: подстановка из заказа и адрес магазина задаются в разных местах.
Частые вопросы
Почему письма приходят с большой задержкой?
Очередь разбирается агентом по расписанию. Если агенты запускаются редко или только при заходе посетителя, письма ждут своего часа.
Стоит ли отправлять почту прямо с сервера сайта?
Нет, внешний почтовый сервис даёт доставку заметно надёжнее. Адрес хостинга без истории отправки почтовые системы встречают недоверчиво.
Как проверить письмо, не оформляя заказ?
Отправкой шаблона на свой адрес из административной части. Это проверяет всю цепочку, кроме самого события.
Почему письма приходят покупателю, но не менеджеру?
У получателя внутри компании работает своя защита от спама. Письма от неизвестного адреса она откладывает молча.
Смежное
-
Почта и рассылки - оглавление подтемы
-
Письма не в спам: подписи домена, обратный адрес, репутация - если письма уходят, но попадают в спам
-
Приём входящих писем: ящик, разбор, привязка к заказу - приём писем вместо отправки
-
Настройка отправки почты: локальная отправка и SMTP - как настроить отправку правильно
-
Не работает восстановление пароля: причины по убыванию частоты - частный случай: письмо смены пароля
-
Агенты и cron: запуск по расписанию - кто разбирает очередь писем
-
Своё письмо с сайта: тип события, шаблон, поля - как устроены событие и шаблон
-
Инфраструктура и хостинг - устройство площадки целиком
-
Рассылка с нуля: сегмент, письмо, отправка, отписка - массовая рассылка рядом с обычными письмами
-
Уведомления покупателю: письма и SMS по статусам заказа - какие события шлёт магазин
-
Очередь писем: фоновая отправка, порции, повторы, чистка - что происходит между вызовом и ящиком
-
Почта в веб-окружении: пункт меню, отправка, журнал - журнал отправки на самой машине
-
Почтовые шаблоны: макросы, поля, мультисайт - если письмо уходит, но приходит пустым