Как избежать проблем с отправкой писем WooCommerce через SMTP

Почему в WooCommerce возникают проблемы с отправкой писем

WooCommerce по умолчанию использует штатную функцию wp_mail() WordPress для отправки писем, которая опирается на локальный почтовый сервер PHP (mail() функция). Это часто приводит к проблемам с доставкой, особенно на хостингах с ограничениями или без правильно настроенного почтового сервера. Распространённые симптомы:

  • Письма не доходят до клиентов (подтверждения заказов, уведомления, восстановление пароля).
  • Письма попадают в спам.
  • Ошибка при отправке с сообщениями типа «Failed to connect to mail server».

Для решения этих проблем рекомендуется использовать SMTP-сервер для отправки писем, который гарантирует авторизацию и корректную доставку.

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

Чтобы точно понять, что почта не отправляется через WooCommerce, выполните следующие шаги:

  1. Перейдите в WooCommerce → Статус → Логи и найдите логи email. Если они пустые — письма не генерируются или не отправляются.
  2. Отправьте тестовое письмо из WordPress с помощью плагина Check Email или аналогичного.
  3. Проверьте, не попадают ли письма в спам у получателей.
  4. Включите отладку SMTP (если используется) для получения подробностей об ошибках.

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

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

Это один из самых популярных и надёжных плагинов для настройки SMTP в WordPress.

  • В админке WordPress перейдите в Плагины → Добавить новый.
  • Найдите «WP Mail SMTP» от WPForms, установите и активируйте.

2. Конфигурация SMTP

Перейдите в WP Mail SMTP → Настройки и заполните поля:

  • From Email: почта, с которой будут отправляться письма (например, no-reply@вашдомен.ru).
  • From Name: имя отправителя, например, название сайта или магазина.
  • Mailer: выберите SMTP.
  • SMTP Host: адрес вашего SMTP-сервера (например, smtp.yandex.ru, smtp.gmail.com или SMTP хостинг-провайдера).
  • SMTP Port: обычно 587 для TLS или 465 для SSL.
  • Encryption: TLS или SSL, в зависимости от провайдера.
  • Authentication: включено.
  • SMTP Username: логин от почтового ящика.
  • SMTP Password: пароль от почтового ящика.

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

В разделе настроек плагина есть вкладка для тестовой отправки письма. Укажите адрес для теста (лучше использовать почту, отличную от отправителя) и отправьте.

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

После настройки SMTP обязательно проверьте:

  • Письма из WooCommerce (подтверждения заказов, уведомления) доходят на почту.
  • Тестовые письма из WP Mail SMTP успешно отправляются и не попадают в спам.
  • Отсутствие ошибок в логах WooCommerce и WP Mail SMTP.

Частые ошибки при настройке SMTP и способы их исправления

  • Неверный порт или шифрование: Проверьте документацию SMTP-провайдера и используйте правильные значения. Например, для Gmail порт 587 с TLS.
  • Неправильный логин или пароль: Проверьте учетные данные, попробуйте войти в почтовый ящик напрямую.
  • Двухфакторная аутентификация и OAuth: Для Gmail и некоторых провайдеров потребуется создать пароль приложений или использовать OAuth (WP Mail SMTP поддерживает).
  • Проблемы с DNS и SPF/DKIM записями: Для надежной доставки нужно настроить SPF и DKIM в DNS-записях, чтобы почта не попадала в спам.
  • Плагин конфликтует с другими SMTP плагинами: Отключите другие плагины, влияющие на почту.

Практические советы по безопасности и производительности

  • Используйте отдельный почтовый ящик для отправки писем WooCommerce, чтобы не смешивать с личной почтой.
  • Регулярно обновляйте WP Mail SMTP и другие плагины для безопасности.
  • Для больших магазинов с высокой нагрузкой стоит рассмотреть специализированные SMTP-сервисы (SendGrid, Mailgun, Amazon SES), которые обеспечивают масштабируемость и стабильность.
  • Не храните пароли SMTP в открытом виде в коде, используйте настройки плагина.

Код для принудительной отправки писем через SMTP (опционально)

Если нужен минимальный код без плагинов, можно использовать PHPMailer напрямую, но это не рекомендуется для новичков. Пример использования в functions.php темы:

add_action('phpmailer_init', function($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 = 'Ваш магазин';
});

Используйте этот код только если уверены в настройках сервера и безопасности.

Сравнение вариантов настройки SMTP для WooCommerce

МетодПлюсыМинусыПрименимость
Плагин WP Mail SMTPПростая настройка, поддержка популярных сервисов, тестирование почтыЗависимость от плагина, возможны конфликтыДля большинства пользователей
Код в functions.php (PHPMailer)Без плагинов, контроль на уровне кодаТребует навыков, сложно поддерживать, безопасностьДля опытных разработчиков
Специализированные SMTP-сервисы (SendGrid, Mailgun)Высокая надежность, масштабируемость, аналитикаСтоимость, настройка DNSДля больших магазинов
Как запретить регистрацию по определённым email-доменам в WordPress
14.04.2026
Как избежать проблем с удалением товаров в WooCommerce
20.04.2026
Как избежать проблем с отправкой писем с WordPress через SMTP
06.06.2026
Как создать автоматическую систему отзывов с подтверждением в WordPress
02.02.2026
Как использовать хуки для оптимизации WordPress: практические советы и примеры
13.12.2025

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: