Письма не в спам - подписи домена, обратный адрес, репутация
Настраиваем доставляемость писем магазина: записи домена для подписи, обратный адрес, разделение потоков и проверка результата на реальных ящиках.
Что нужно знать заранее
Почтовые службы принимают решение по домену отправителя, а не по содержанию письма. Настройки домена отвечают на вопрос, имеет ли ваш сервер право слать письма от этого имени.
Обратный адрес письма обязан жить на том же домене, что и подпись. Письмо от адреса на бесплатной почте с вашего сервера выглядит подделкой и почти всегда уезжает в спам.
Транзакционные письма и массовые рассылки лучше разводить по разным адресам отправителя. Жалоба на рассылку портит репутацию домена целиком, и вместе с ней перестают доходить письма о заказах.
Шаги
- Завести служебные записи домена для проверки права сервера на отправку писем.
- Включить подпись писем на почтовом сервере и проверить её на тестовом ящике.
- Привести обратный адрес в настройках сайта к тому домену, который подписан.
- Развести транзакционные письма и массовые рассылки по разным адресам или поддоменам.
- Проверить результат отправкой в проверяющий сервис и на несколько реальных ящиков.
Решение
Смотрим текущие записи домена:
dig +short TXT example.com | grep -i spfdig +short TXT default._domainkey.example.com | head -2dig +short TXT _dmarc.example.com# пустой ответ на любую из строк означает, что проверка домена не настроенаТри записи отвечают за три разные вещи: право сервера отправлять почту, подпись письма ключом домена и политику для писем, не прошедших проверку. Настраивают все три записи сразу, а не одну на выбор.
Сверяем обратный адрес сайта:
printf("адрес по умолчанию: %s\n", \Bitrix\Main\Config\Option::get('main', 'email_from'));foreach (\Bitrix\Main\SiteTable::getList(['select' => ['LID', 'EMAIL']])->fetchAll() as $site) { printf("%s -> %s\n", $site['LID'], $site['EMAIL']); // адрес каждой витрины}Обратный адрес задаётся и в настройках сайта, и в шаблонах писем. Расхождение между ними встречается часто и лечится приведением всех адресов к одному подписанному домену.
Проверяем, каким сервером уходит письмо:
grep -iE 'smtp|mail' /home/bitrix/www/bitrix/.settings.php | headtail -50 /var/log/maillog | grep -i 'from=' | tail -5# письмо может уходить локальной программой сервера или через внешний сервисОтправляем проверочное письмо:
\CEvent::Send('VENDOR_TEST', 's1', ['EMAIL' => 'check-auth@verifier.example'], 'N');// проверяющий сервис пришлёт отчёт по подписям и по репутации доменаПроверочный отчёт показывает результат так, как его видит почтовая служба. Читать заголовки писем руками при этом не нужно: отчёт называет каждую проверку и её итог словами.
Разводим потоки писем:
// транзакционные письма - с основного домена, рассылки - с поддомена\Bitrix\Main\Config\Option::set('main', 'email_from', 'shop@example.com');// в модуле рассылок задают адрес вида news@mail.example.comРазделение потоков защищает самое главное: письма о заказах покупателям. Даже если рассылка соберёт жалобы, репутация основного домена останется чистой, и покупатель получит уведомление об оплате.
Типичные проблемы
Письма приходят в спам у части получателей.
Настроена только одна проверка домена из трёх, обычно право сервера на отправку. Подпись письма и политику домена настраивают вместе с этой записью.
Письма от сайта помечаются как подделка.
Обратный адрес письма живёт на чужом домене, а отправляет письмо ваш сервер. Обратный адрес писем приводят к подписанному домену самого проекта.
После рассылки перестали доходить письма о заказах.
Рассылка и транзакционные письма идут с одного адреса и с одного домена. Потоки писем разводят по разным адресам или поддоменам заранее.
Проверка домена настроена, а письма всё равно в спаме.
Домен или адрес сервера уже попали в чёрные списки крупных почтовых служб. Репутацию домена восстанавливают постепенно, начиная с чистки списка получателей.
На одной витрине письма доходят, на другой нет.
У витрин разные обратные адреса, а подписан при этом только один домен. Адреса каждой витрины проверяют отдельно в настройках соответствующих сайтов.
Частые вопросы
Хватит ли одной записи для проверки домена?
Нет, почтовые службы смотрят все три и по-разному. Право на отправку без подписи письма даёт слабую защиту и не спасает от попадания в спам.
Нужен ли отдельный сервис отправки писем?
Для магазина с рассылками это разумно: он держит репутацию и даёт отчёты. Небольшому сайту хватает почтового сервера с правильно настроенным доменом.
Почему письмо доходит на один ящик и не доходит на другой?
Почтовые службы применяют разные правила и по-разному оценивают репутацию. Проверять доставляемость надо на нескольких крупных сервисах сразу.
Как быстро восстанавливается репутация домена?
От нескольких дней до месяцев, и ускорить это нельзя. Помогает чистка списка получателей и отправка только тем, кто ждёт писем.
Влияет ли содержание письма на попадание в спам?
Влияет, но заметно меньше настроек домена и репутации. Ссылки на чужие домены и агрессивные формулировки лучше держать в разумных пределах.
Смежное
- Отправка почты с сервера - оглавление подтемы
- Настройка отправки почты: локальная отправка и SMTP - чем именно уходит письмо
- Письма с сайта не доходят: разбор причин по убыванию частоты - разбор, когда письма не приходят вовсе
- Своё письмо с сайта: тип события, шаблон, поля и отправка - откуда берётся обратный адрес шаблона
- Рассылка с нуля: сегмент, письмо, отправка, отписка - массовые письма и их адрес
- Данные на двух сайтах: каталог, цены, заказы, письма - адреса витрин на мультисайте
- Сервер и поиск - устройство сервера целиком