WooCommerce: как избежать проблем с отправкой писем после оформления заказа

Диагностика проблем с отправкой писем в WooCommerce

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

  • Проверьте настройки электронной почты WooCommerce в разделе WooCommerce > Настройки > Электронная почта.
  • Убедитесь, что ваш хостинг поддерживает отправку писем через PHP-mail или SMTP.
  • Проверьте папку "Спам" у получателей — письма могут туда попадать.
  • Включите логирование писем в WooCommerce через плагин WP Mail Logging или аналогичный.
  • Проверьте, не блокирует ли сервер отправку почты (ограничения на количество писем, блокировка портов).

Проверка работы PHP mail()

Создайте тестовый скрипт в корне сайта test-mail.php с таким содержимым:

<?php
$to = 'ваш-email@пример.ком';
$subject = 'Тест PHP mail';
$message = 'Если вы получили это письмо, PHP mail работает.';
$headers = 'From: no-reply@вашдомен.ру' . "\r\n";
mail($to, $subject, $message, $headers);
echo 'Письмо отправлено';
?>

Запустите скрипт через браузер и проверьте получение письма.

Пошаговое решение: настройка SMTP для надежной отправки

Использование стандартного PHP mail часто приводит к проблемам из-за ограничений хостинга и фильтров спама. Лучшее решение — настроить отправку писем через SMTP-сервер.

1. Установите плагин WP Mail SMTP

Этот плагин позволит настроить отправку почты через SMTP любого почтового сервиса (Gmail, Яндекс, Mail.ru, корпоративный SMTP и др.).

2. Настройка плагина

  1. Перейдите в Плагины > Добавить новый, найдите WP Mail SMTP и установите его.
  2. Активируйте плагин.
  3. В меню WP Mail SMTP перейдите к настройкам.
  4. Выберите поставщика SMTP (например, Gmail, Яндекс или другой).
  5. Введите SMTP-сервер, порт, email отправителя и пароль (или OAuth, если поддерживается).
  6. Сохраните настройки.

3. Тест отправки письма

В настройках WP Mail SMTP есть кнопка Отправить тестовое письмо. Отправьте письмо на свой email и проверьте, пришло ли оно и в папку "Входящие".

4. Отключите кэширование писем в WooCommerce

Некоторые плагины кэширования могут блокировать отправку почты. Временно отключите кэш (например, WP Rocket или LiteSpeed) и проверьте работу писем.

Проверка результата после внедрения

  • Сделайте тестовый заказ в магазине.
  • Проверьте, получили ли письма клиент и администратор.
  • Посмотрите логи плагина WP Mail SMTP и WooCommerce, если письма не приходят.
  • Убедитесь, что письма не попадают в спам.

Частые ошибки и как их исправить

  • Неправильно настроен SMTP-сервер: проверьте порт, SSL/TLS, логин и пароль.
  • Почтовый сервер блокирует отправку: уточните у хостера ограничения по отправке почты.
  • Письма попадают в спам: настройте SPF, DKIM и DMARC записи в DNS.
  • Плагин кэширования блокирует отправку: добавьте исключение для URL отправки почты или отключите кэш.
  • Конфликт плагинов: временно отключите все плагины кроме WooCommerce и WP Mail SMTP, проверьте отправку.

Практические советы для надежной работы почты в WooCommerce

  • Используйте SMTP вместо PHP mail для стабильной отправки.
  • Настройте SPF, DKIM и DMARC записи для вашего домена — это повышает доверие почтовых сервисов.
  • Регулярно проверяйте логи отправки писем (через WP Mail Logging или аналогичные).
  • Обновляйте WooCommerce и плагины, чтобы избежать багов в почтовой системе.
  • Используйте надежный SMTP-сервис с хорошей репутацией (Gmail, Яндекс, SendGrid, Mailgun).

Сравнение вариантов настройки отправки писем в WooCommerce

МетодПлюсыМинусыРекомендации
PHP mail()Простота, не требует настроекНизкая надежность, письма часто в спамеИспользовать только для тестов или на локальной разработке
SMTP через WP Mail SMTPНадежность, контроль, меньше спамаТребует настройки, возможны проблемы с портамиОптимальный выбор для большинства сайтов
Плагины почтовых сервисов (SendGrid, Mailgun)Высокая доставка, аналитикаСложнее в настройке, дополнительные аккаунтыДля больших магазинов и высоких нагрузок

Пример кода: отключение стандартной отправки и использование wp_mail с кастомным SMTP

add_action('phpmailer_init', 'custom_phpmailer_smtp');
function custom_phpmailer_smtp( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.yandex.ru';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 465;
    $phpmailer->Username   = 'your-email@yandex.ru';
    $phpmailer->Password   = 'your-password';
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->From       = 'your-email@yandex.ru';
    $phpmailer->FromName   = 'Ваш магазин';
}

// Пример отправки письма через wp_mail
wp_mail('client@example.com', 'Тема письма', 'Текст письма');
WooCommerce: отладка проблем с оплатой через Stripe после обновления
24.05.2026
Как создать настраиваемую настройку плагина WordPress с хранением в базе данных
22.12.2025
Как удалить версию WordPress из HTML и REST API для повышения безопасности
11.04.2026
WooCommerce: как отключить обязательное поле адреса доставки при оформлении заказа
27.06.2026
Как изменить URL адреса постов в WordPress без использования стандартных пермалинков
26.12.2025