Перейти к содержимому

Письма не в спам - подписи домена, обратный адрес, репутация

Настраиваем доставляемость писем магазина: записи домена для подписи, обратный адрес, разделение потоков и проверка результата на реальных ящиках.

Что нужно знать заранее

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

Обратный адрес письма обязан жить на том же домене, что и подпись. Письмо от адреса на бесплатной почте с вашего сервера выглядит подделкой и почти всегда уезжает в спам.

Транзакционные письма и массовые рассылки лучше разводить по разным адресам отправителя. Жалоба на рассылку портит репутацию домена целиком, и вместе с ней перестают доходить письма о заказах.

Шаги

  1. Завести служебные записи домена для проверки права сервера на отправку писем.
  2. Включить подпись писем на почтовом сервере и проверить её на тестовом ящике.
  3. Привести обратный адрес в настройках сайта к тому домену, который подписан.
  4. Развести транзакционные письма и массовые рассылки по разным адресам или поддоменам.
  5. Проверить результат отправкой в проверяющий сервис и на несколько реальных ящиков.

Решение

Смотрим текущие записи домена:

Окно терминала
dig +short TXT example.com | grep -i spf
dig +short TXT default._domainkey.example.com | head -2
dig +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 | head
tail -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

Разделение потоков защищает самое главное: письма о заказах покупателям. Даже если рассылка соберёт жалобы, репутация основного домена останется чистой, и покупатель получит уведомление об оплате.

Типичные проблемы

Письма приходят в спам у части получателей.

Настроена только одна проверка домена из трёх, обычно право сервера на отправку. Подпись письма и политику домена настраивают вместе с этой записью.

Письма от сайта помечаются как подделка.

Обратный адрес письма живёт на чужом домене, а отправляет письмо ваш сервер. Обратный адрес писем приводят к подписанному домену самого проекта.

После рассылки перестали доходить письма о заказах.

Рассылка и транзакционные письма идут с одного адреса и с одного домена. Потоки писем разводят по разным адресам или поддоменам заранее.

Проверка домена настроена, а письма всё равно в спаме.

Домен или адрес сервера уже попали в чёрные списки крупных почтовых служб. Репутацию домена восстанавливают постепенно, начиная с чистки списка получателей.

На одной витрине письма доходят, на другой нет.

У витрин разные обратные адреса, а подписан при этом только один домен. Адреса каждой витрины проверяют отдельно в настройках соответствующих сайтов.

Частые вопросы

Хватит ли одной записи для проверки домена?

Нет, почтовые службы смотрят все три и по-разному. Право на отправку без подписи письма даёт слабую защиту и не спасает от попадания в спам.

Нужен ли отдельный сервис отправки писем?

Для магазина с рассылками это разумно: он держит репутацию и даёт отчёты. Небольшому сайту хватает почтового сервера с правильно настроенным доменом.

Почему письмо доходит на один ящик и не доходит на другой?

Почтовые службы применяют разные правила и по-разному оценивают репутацию. Проверять доставляемость надо на нескольких крупных сервисах сразу.

Как быстро восстанавливается репутация домена?

От нескольких дней до месяцев, и ускорить это нельзя. Помогает чистка списка получателей и отправка только тем, кто ждёт писем.

Влияет ли содержание письма на попадание в спам?

Влияет, но заметно меньше настроек домена и репутации. Ссылки на чужие домены и агрессивные формулировки лучше держать в разумных пределах.

Смежное

Первоисточник