Письма с WordPress и WooCommerce попадают в спам: настраиваем SMTP на Beget, Sprinthost и REG.RU

Письма с сайта улетают в спам? WordPress без настроек, по умолчанию отправляет письма через PHP mail() без SPF, DKIM и DMARC, что приводит к попаданию в спам для +70% писем. Разбираемся с особенностями настроек для WP & WooCommerce.

TL;DR

  • По умолчанию WordPress шлёт письма через PHP mail — без аутентификации, из-за чего фильтры считают их подозрительными.
  • Решение: перейти на SMTP или API-рассылщик, включить SPF/DKIM/DMARC, выровнять «From» и почтовый ящик на домене.
  • На Beget, Sprinthost и REG.RU — используйте почтовый ящик на своём домене и их SMTP. Проверяйте результат тестами и логами.

Почему письма попадают в спам

WordPress отправляет почту функцией wp_mail(), которая опирается на PHP mail(). На общих тарифах это приводит к отсутствию подтверждённой аутентификации: нет DKIM-подписи, SPF не настроен, обратный адрес отправителя не совпадает с доменом. Плюс общий IP соседей может иметь плохую репутацию. Итог — высокая вероятность папки «Спам» у крупных почтовых провайдеров.

  • Нет SPF/DKIM/DMARC. Получатель не может валидировать домен отправителя.
  • Общий IP с плохой репутацией. На shared-хостинге репутация делится между клиентами.
  • Неверные заголовки. Несовпадение конвертного отправителя и поля From, пустой Return-Path, технические подписи.
  • Неподходящий порт или шифрование. Порт 25 часто заблокирован. Используйте 465 (SSL) или 587 (TLS).

Чек‑лист проверки доставки

  1. Отправьте тестовое письмо с сайта на ящик у крупного провайдера и откройте оригинал письма — ищите SPF: pass и DKIM: pass.
  2. Проверьте письмо в специализированном тестовом сервисе качества письма и спам‑скоринга.
  3. Включите логирование отправок в плагине SMTP и убедитесь, что нет ошибок аутентификации.
  4. Подключите инструменты постмастера для мониторинга репутации домена и показателей доставки.

Тестируем письма через mail-tester.com

Mail-tester.com — это бесплатный сервис для проверки качества настройки email-отправки. Он анализирует SPF, DKIM, DMARC, содержимое письма и репутацию IP, выставляя оценку от 0 до 10. Цель — получить минимум 8/10 для гарантированной доставки в «Входящие».

Шаг 1: Получите тестовый адрес

  1. Откройте mail-tester.com в браузере.
  2. На главной странице вы увидите уникальный email-адрес типа test-abc123@mail-tester.com — скопируйте его.
  3. Этот адрес действителен 7 дней и позволяет провести 3 бесплатные проверки (дальше нужна регистрация).

Шаг 2: Отправьте письмо с вашего сайта

  1. Зайдите в админку WordPress → страница с формой (например, Contact Form 7, WooCommerce или просто тестовая страница с кнопкой «Отправить письмо»).
  2. В поле «Email получателя» вставьте скопированный адрес test-abc123@mail-tester.com.
  3. Заполните тему и текст письма (можно стандартное: «Тест доставки с WordPress»).
  4. Отправьте письмо через форму на сайте (не через вашу почту напрямую — важно тестировать именно SMTP-настройки WordPress!).

Шаг 3: Проверьте результаты

  1. Вернитесь на mail-tester.com и нажмите кнопку «Then check your score» (появится после отправки письма).
  2. Сервис покажет оценку и детальный отчет:
    • SPF/DKIM/DMARC: Должны быть зелеными (PASS). Если красные — проверьте DNS-записи в панели хостинга.
    • Spam Assassin Score: Должен быть отрицательным (например, -2.5). Положительное значение = триггеры спама в тексте.
    • Blacklist Check: Если IP в черном списке — смените на выделенный IP или используйте внешний SMTP (Yandex, SendGrid).
    • HTML/Text ratio: Письма с большим количеством картинок без текста получают штраф.
  3. Скачайте PDF-отчет (кнопка «Download PDF») для анализа.

Шаг 4: Исправьте ошибки

Если оценка ниже 8/10:

  • SPF не настроен: Добавьте TXT-запись в DNS (см. раздел выше про DNS-настройки).
  • DKIM отсутствует: Включите в панели Beget/Sprinthost или настройте через Yandex.Connect.
  • From/Reply-To не совпадают: Убедитесь, что в плагине WP Mail SMTP поле «From Email» = почте на вашем домене (@вашдомен.ru, а не @gmail.com).
  • Содержимое письма: Избегайте слов «бесплатно», «скидка 99%», ссылок на незнакомые домены.

Шаг 5: Повторите тест после изменений

  1. Обновите страницу mail-tester.com — получите новый тестовый адрес.
  2. Отправьте письмо снова и проверьте, выросла ли оценка.
  3. Цель: стабильные 9-10/10 баллов.

Альтернативные инструменты проверки

  • MXToolbox Email Health: Детальная проверка DNS и репутации домена.
  • DKIM Validator: Проверка подписи DKIM без отправки реального письма.
  • Google Postmaster Tools: Подключите домен для мониторинга репутации в Gmail.

Совет: Сохраните несколько тестовых отчетов с mail-tester.com — это поможет отследить изменения после обновлений WordPress или плагинов.

Вариант 1. Без кода: настраиваем SMTP через плагин

Самый быстрый способ — установить плагин SMTP. Популярный вариант позволяет выбрать провайдера, вести логи и отправлять тестовые письма.

Самый популярный плагин WP Mail SMTP

Beget

  1. Создайте почтовый ящик на своём домене в панели хостинга и включите DKIM/DMARC (если доступно).
  2. В плагине выберите «Другой SMTP» и укажите настройки по инструкции Бегет https://beget.com/ru/kb/how-to/mail/obshhie-svedeniya
  3. Отправьте тест и проверьте заголовки: должны быть SPF/DKIM pass.

Sprinthost

  1. Создайте почтовый ящик на домене и включите DKIM в панели.
  2. В плагине — «Другой SMTP» со значениями согласно инструации https://help.sprinthost.ru/mail/sphmail
  3. Если используете внешний провайдер (например, корпоративную почту), создайте пароль приложения и используйте его вместо основного.
  4. Сделайте тестовую отправку и проверьте логи.

REG.RU

  1. Создайте почтовый ящик в панели REG.RU, активируйте DKIM/DMARC.
  2. Заполните в плагине SMTP-хост и порт в соответствии с подсказками в панели по инструкции https://help.reg.ru/support/hosting/nastroyka-pochty-regru/nastroyka-pochty-i-pochtovykh-kliyentovv/nastroyka-pochtovykh-kliyentovv.
  3. Включите аутентификацию, укажите логин (полный адрес) и пароль почтового ящика.
  4. Проверьте заголовки письма и логи отправок.

Советы по настройке плагина:

  • Ставьте адрес «From» строго на том же домене, что и ваш SMTP-ящик.
  • Включите запись логов отправок для диагностики (ошибки авторизации, TLS, блокировки портов и т. п.).
  • При массовых транзакционных письмах рассмотрите API-провайдеров (например, маркетинговые сервисы и сервисы транзакционных писем) — у них выше доставляемость и есть ключи API.

Вариант 2. Без плагинов, с кодом в functions.php

Подходит тем, кто не хочет ставить плагин. Рекомендуется использовать дочернюю тему или собственный мини‑плагин, а пароли вынести в wp-config.php.

// wp-config.php (пример: задаём константы)
define('SMTP_HOST', 'mail.beget.com');
define('SMTP_PORT', 465);
define('SMTP_USER', 'info@yourdomain.ru');
define('SMTP_PASS', 'пароль_приложения');
define('SMTP_SECURE', 'ssl'); // 'ssl' или 'tls'

define('MAIL_FROM', 'info@yourdomain.ru');
define('MAIL_FROM_NAME', 'Ваш сайт');
// functions.php
add_action('phpmailer_init', function ($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = SMTP_HOST;
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = SMTP_PORT;
    $phpmailer->Username   = SMTP_USER;
    $phpmailer->Password   = SMTP_PASS;
    $phpmailer->SMTPSecure = SMTP_SECURE; // 'ssl' для 465, 'tls' для 587
    $phpmailer->From       = MAIL_FROM;
    $phpmailer->FromName   = MAIL_FROM_NAME;
    $phpmailer->Sender     = MAIL_FROM; // корректный bounce-адрес
});

add_filter('wp_mail_from', function () { return MAIL_FROM; });
add_filter('wp_mail_from_name', function () { return MAIL_FROM_NAME; });

Для Sprinthost при редких SSL-ошибках можно добавить:

$phpmailer->SMTPOptions = [
  'ssl' => [
    'verify_peer'      => false,
    'verify_peer_name' => false,
    'allow_self_signed'=> true,
  ],
];

Обязательные DNS-настройки

Правильные DNS-записи — половина успеха. Настраивайте их в панели вашего регистратора/хостинга.

  • SPF (TXT). Разрешите отправку от вашего SMTP/провайдера. Пример базовой записи:
    v=spf1 a mx include:ваш_smtp_провайдер ~all
    Не храните две записи SPF на один домен — объединяйте в одну.
  • DKIM. Включите в панели почтового провайдера: он сгенерирует селектор и TXT-запись. После включения письма получат криптоподпись.
  • DMARC (TXT). Базовый старт:
    _dmarc.вашдомен.ru IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@вашдомен.ru"
    После стабилизации можно повышать политику до p=reject.

Для Beget/Sprinthost/REG.RU включение DKIM обычно делается одной кнопкой в разделе «Почта», а рекомендуемые SPF-значения отображаются там же. Всегда берите точные строки из панели, а не копируйте «универсальные» примеры вслепую.

Особенности WooCommerce

  • Убедитесь, что адрес отправителя в настройках WooCommerce совпадает с доменом SMTP-ящика.
  • Проверьте шаблоны писем: странные темы/контент и лишние вложения могут ухудшать оценку письма.
  • После изменений отправьте тестовые уведомления о заказе и проверьте заголовки.

Диагностика и советы

  • Избегайте порта 25. Во многих местах он закрыт для исходящих соединений. Используйте 465 (SSL) или 587 (TLS).
  • Следите за репутацией. Регулярно проверяйте спам‑скоринг тестовыми сервисами и в инструментах постмастера.
  • Соблюдайте соответствие доменов. Домен в «From», DKIM и SPF должен совпадать или быть согласован (через include/подпись).
  • Логи и ретраи. Включите логирование и настройте повторные отправки (если это поддерживается плагином).
  • Масштаб. Если писем много (заказы, транзакции, рассылки) — переходите на API отправку у специализированного сервиса.

Итог — чек лист

  • Переведите WordPress/WooCommerce на SMTP или API
  • Проверьте настройки SPF/DKIM/DMARC, выровняйте «From» и тестируйте до стабильного pass по всем проверкам.
  • На Beget, Sprinthost и REG.RU это занимает 10–15 минут, а результат — письма, которые доходят до посетителей, а не исчезают в спаме.
Фото аватара

Antony I

Веб разработчик, специализация на лучших мировых практиках: WordPress, WooCommerce, NextJS, Strapi, JAMStack ...

Основные типы проектов: CMS, eCommerce, SEO, LMS, ECM, BPM

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *