WooCommerce8 мин чтения

Письма заказов WooCommerce: диагностика и исправление

Подтверждение заказа, уведомление об обработке и счёт-фактура WooCommerce часто попадают в спам. Причины: PHP mail без аутентификации, чужой IP и неправильная настройка Domain. Вот как протестировать весь процесс и закрыть проблему навсегда.

Вы получили письмо от клиента: «Заказ прошёл? Письма не вижу.» Проверяете логи WooCommerce — там всё помечено как «отправлено». Оплата прошла, товар зарезервирован, статус заказа обновлён. Но письмо не дошло до клиента. Опять.

Письма о заказах WooCommerce — одна из самых частых жертв папки Спам на всех хостингах. Не потому что WooCommerce сломан, а потому что по умолчанию он использует PHP-функцию mail(), которая отправляет письма без аутентификации с shared IP хостинга. В 2026 году это гарантия попасть в спам Gmail, Outlook и Mail.ru.

Быстрый ответ

Замените PHP mail на authenticated SMTP через плагин, добавьте SPF + DKIM + DMARC для домена From-адреса и протестируйте все шаблоны заказов через seed-инфраструктуру. Каждый шаблон (обработка, завершение, счёт) должен быть проверен в реальных инбоксах перед тем как доверять ему.

Анатомия писем WooCommerce

WooCommerce поставляется с дюжиной шаблонов transactional письма. Большинство магазинов активно используют пять из них:

  • Новый заказ — уведомление администратору, когда клиент совершил покупку. Идёт на почту магазина, поэтому часто «работает» даже когда письма клиентам падают в спам.
  • Заказ в обработке — уведомление клиенту, что заказ получен и оплата обрабатывается.
  • Заказ выполнен — уведомление клиенту, что товар отправлен или цифровой товар готов к скачиванию.
  • Счёт-фактура — ручной счёт с реквизитами оплаты, отправляется администратором если платёж остался неподтверждённым.
  • Возврат средств — подтверждение возврата денег.

Все эти письма проходят через одну функцию wp_mail(). Это важно. Исправьте wp_mail() один раз — и все шаблоны заработают. Оставьте её сломанной — и все будут падать в спам.

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

Есть три перекрывающихся проблемы, и их влияние накапливается когда они встречаются вместе.

1. PHP mail() с shared IP хостинга

По умолчанию WordPress вызывает встроенную PHP-функцию mail(), которая отправляет сообщение локальному MTA сервера (обычно Postfix или Exim). Тот MTA отправляет письмо с IP самого сервера — общего IP-адреса сотен сайтов на одном cPanel или plesk-узле. Если один сосед попадёт в чёрный список — вместе с ним спамятся все соседи.

2. Несоответствие From-адреса

WordPress по умолчанию ставит в From-адрес wordpress@ваш-хост.com. Владельцы магазина меняют это на shop@ваш-магазин.com в настройках WooCommerce, но забывают добавить SPF и DKIM записи для этого домена на хостинге. Результат: SPF «softfail», DKIM «none», DMARC политика либо не опубликована, либо p=none (бесполезна).

3. Отсутствие обработки bounces

PHP mail молча откидывает bounces-уведомления. Если клиент опечатался в почте при оформлении заказа — вы никогда не узнаете. Со временем ваша репутация отправителя накапливает невидимые ошибки доставки.

На что обратить внимание
  • Клиенты письмами спрашивают «Заказ прошёл?» через пару минут после оплаты.
  • Тестовые заказы с вашего Gmail попадают в Спам или Промоакции — но вы рассчитывали что это нормально.
  • Заголовки письма показывают Received-SPF: softfail или dkim=none.
  • В поддержку приходят письма со словом «спам» в последние 30 дней.

SMTP плагин + DNS: два шага

Два части. Обе обязательны. Если не сделаете обе — не будет толку.

Часть 1: Перенаправьте wp_mail() через authenticated SMTP

  1. Установите SMTP плагин. WP Mail SMTP, FluentSMTP и Post SMTP — три самых популярных варианта. FluentSMTP бесплатный и хороший. WP Mail SMTP имеет самый красивый интерфейс. Выберите любой.
  2. Выберите провайдера отправки — Amazon SES, Postmark, SendGrid,Mailgun или Brevo. Для transactional писем заказов лучше всего подходят Postmark и SES. Postmark за простоту, SES если у вас уже есть аккаунт AWS.
  3. В плагине введите API-ключ или SMTP-учётные данные провайдера. УстановитеFrom Name в название магазина, а From Email в адрес типаorders@ваш-магазин.com. Включите опцию Force From Email чтобы другие плагины (например платёжные) не смогли переопределить From.
  4. Отправьте встроенное тестовое письмо плагина на свой Gmail или Outlook. Убедитесь что оно пришло в Входящие и что заголовки показывают spf=pass иdkim=pass согласованные с вашим доменом.

Часть 2: DNS-записи для аутентификации

Ваш провайдер отправки выдаст вам записи для добавления в DNS. Правильная настройка для ваш-магазин.com выглядит так:

; SPF — в зависимости от вашего провайдера
ваш-магазин.com.           IN  TXT  "v=spf1 include:amazonses.com ~all"

; DKIM — пример селектора от SES, ваш провайдер даст 3 CNAME
abc123._domainkey.ваш-магазин.com.  IN  CNAME  abc123.dkim.amazonses.com.

; DMARC — начните с quarantine и адресом для отчётов
_dmarc.ваш-магазин.com.    IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@ваш-магазин.com; pct=100; adkim=r; aspf=r"

Опубликуйте записи, подождите 10 минут на распространение, затем отправьте тест заново. Цель — получить spf=pass, dkim=pass и dmarc=passвсе три сразу. Что-то меньше — и вы не закончили.

Бесплатная проверка попадания писем

Bесплатный инструмент Inbox Check генерирует 20+ свежих seed-адресов в Gmail, Outlook, Yahoo, Mail.ru, Yandex, ProtonMail и других провайдерах. Тестируйте каждое письмо заказа на попадание в Входящие прямо из админки магазина.

→ Запустить бесплатный тест

Seed-тест всей цепочки заказов

Один тест через встроенный тест плагина доказывает только то что транспорт работает. Это не доказывает что ваш шаблон подтверждения заказа попадёт в инбокс, потому что шаблоны WooCommerce содержат дополнительный контент — таблицы товаров, цены, ссылки — которые меняют spam score письма.

Дисциплина простая: создайте реальный тестовый заказ (или товар со скидкой 100%) и смотрите каждый шаблон в seed-инбоксах.

  1. Создайте тестовый товар с ценой 0.00 или примените купон на 100% скидку чтобы не тратить деньги.
  2. Откройте инструмент проверки. На check.live-direct-marketing.online сгенерируйте 20+ seed-адресов по Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX и ProtonMail. Скопируйте список.
  3. Оформите заказ используя первый seed-адрес. Вы увидите как письмо «Заказ в обработке» приходит на этот ящик. Проверьте дашборд: Входящие vs Спам vs Промоакции для каждого провайдера.
  4. В админке WooCommerce отметьте заказ как «Выполнен». Это триггерит шаблон «Заказ выполнен». Используйте следующий seed-адрес и повторите тест.
  5. В конце выставьте ручной счёт из админки. Это проверит шаблон «Счёт-фактура» с реквизитами оплаты, который сканируется иначе чем простое подтверждение.

Вы должны стремиться к 95%+ попаданию в Входящие у крупных провайдеров. Что-то ниже 80% нужно проверить ещё раз: аутентификация, контент письма и прогрев IP.

Как сохранить исправленное

Deliverability — это не «настроил и забыл». Три вещи подламываются со временем:

  • Дрейф DNS. Разработчик пересоздал DKIM-ключ у провайдера отправки и забыл обновить DNS. Вдруг DKIM начинает валиться и DMARC откидывает письма.
  • Правки в шаблонах. Маркетер добавил рекламный баннер в шаблон заказа. Картинка хостится на новом поддомене без репутации. Spam score растёт.
  • Чёрные списки провайдера. Компания-провайдер отправки попала в чёрный список. Ваша transactional почта ловится совместно с массовой рассылкой.

Запланируйте еженедельный тест размещения для каждого основного шаблона заказа. Если что-то упадёт ниже 90% — открывайте тикет. Стоимость писем о заказе в спаме считается в запросах на возврат.

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

У WooCommerce есть встроенная SMTP-настройка?

Нет. WooCommerce использует функцию wp_mail() из WordPress, которая на дефолте вызывает PHP mail(). Нужен внешний SMTP-плагин или custom mu-plugin чтобы это изменить.

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

Amazon SES стоит около одного цента за тысячу писем. Бесплатный тариф Postmark покрывает 100 писем в месяц. Для большинства маленьких магазинов transactional отправка — меньше доллара в месяц. Стоимость потерянных заказов из-за спама несравнимо выше.

Можно ли использовать личный Gmail как SMTP-сервер?

Технически да, через app-пароль или OAuth. Для тестового сайта или очень маленького магазина работает. Для магазина с десятками заказов в день лимиты Gmail и отсутствие bulk-репутации вас поймают. Используйте dedicated transactional-провайдер.

Тестовое письмо плагина приходит в Gmail, но реальные заказы в спаме. Почему?

Две основные причины. Первая: тестовое письмо плагина минимально — реальные письма заказа содержат таблицы товаров, цены и ссылки которые поднимают spam score. Вторая: что-то дальше переопределяет From-адрес (платёжный гейтвей или плагин подписки). Включите Force From Email и повторите реальный заказ через seed-панель.
Related reading
Found this useful? Share it
AB
Об авторе
Artem Berezin
B2B Deliverability Specialist

B2B deliverability specialist with 5+ years of hands-on outreach experience. Built campaigns reaching 90,000+ inboxes across 20+ countries — and fixed the deliverability problems that came with that scale.

Проверьте доставляемость в 20+ провайдерах

Gmail, Outlook, Yahoo, Mail.ru, Яндекс, GMX, ProtonMail и другие. Реальные скриншоты входящих, SPF/DKIM/DMARC, вердикты спам-фильтров. Бесплатно, без регистрации.

Запустить тест →

Тесты без ограничений · 20+ ящиков · Живые результаты · Аккаунт не нужен