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

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

Если письма от WooCommerce не доходят до клиентов или администраторов, первое, что нужно проверить — работает ли вообще отправка почты на сервере. Проверьте системные логи и настройки SMTP сервера. Часто проблемы связаны с неправильной конфигурацией PHP mail() или ограничениями хостинга.

Проверьте, не попадут ли письма в спам, используя сервисы типа Mail-tester.com.

Проверка базовой отправки почты в WordPress

Добавьте в functions.php темы следующий код для теста отправки письма:

add_action('init', function() {
    if (isset($_GET['test_email'])) {
        wp_mail('youremail@example.com', 'Тест отправки', 'Если вы получили это письмо, отправка работает.');
        exit('Письмо отправлено');
    }
});

Перейдите на сайт с параметром ?test_email=1 и проверьте почту.

Пошаговое решение: настройка отправки писем WooCommerce без плагинов

1. Настройка заголовков отправки

WooCommerce по умолчанию использует стандартный wp_mail(). Иногда нужно задать правильный заголовок From и Reply-To, чтобы письма не блокировались почтовыми серверами:

add_filter('woocommerce_email_headers', function($headers, $email_id, $order) {
    $from_name = get_option('blogname');
    $from_email = 'no-reply@' . parse_url(home_url(), PHP_URL_HOST);
    $headers  = "From: {$from_name} <{$from_email}>\r\n";
    $headers .= "Reply-To: support@example.com\r\n";
    return $headers;
}, 10, 3);

2. Использование SMTP через wp_mail()

Если почта не отправляется, настройте SMTP вручную, подключив PHPMailer:

add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.mail.ru';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 465;
    $phpmailer->Username   = 'your_smtp_login';
    $phpmailer->Password   = 'your_smtp_password';
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->From       = 'no-reply@example.com';
    $phpmailer->FromName   = get_option('blogname');
});

3. Настройка WooCommerce Email Options

В админке WooCommerce перейдите в WooCommerce → Настройки → Электронные письма и проверьте, что все email шаблоны активны и адреса получателей указаны корректно.

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

1. Выполните заказ на тестовом сайте и проверьте, что клиент получает письмо с подтверждением.

2. Включите логирование почты, добавив в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Проверьте файл wp-content/debug.log на наличие ошибок, связанных с отправкой почты.

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

  • Письма попадают в спам: Проверьте SPF, DKIM и DMARC записи домена. Настройте корректный заголовок From.
  • Ошибка SMTP: Проверьте правильность SMTP данных, порт и шифрование. Попробуйте альтернативные SMTP-серверы.
  • Письма не отправляются при использовании PHP mail(): Проверьте ограничения хостинга и используйте SMTP.
  • Конфликт плагинов: Отключите плагины, которые могут менять почтовую систему (например, другие SMTP плагины), чтобы избежать конфликтов.

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

  • Не храните SMTP пароли в открытом виде, используйте защищённые средства или константы в wp-config.php.
  • Для массовой рассылки используйте внешние сервисы (SendGrid, Mailgun) — это снизит нагрузку и повысит доставляемость.
  • Используйте кеширование WooCommerce со вниманием к email-страницам, чтобы не кэшировать динамический контент.

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

СпособПлюсыМинусыКогда использовать
PHP mail()Простота, встроено в PHPПлохая доставляемость, ограничения хостингаТестовые или простые сайты
SMTP вручную (phpmailer_init)Контроль, высокая доставляемостьТребует настройки, хранение паролейСредние и крупные проекты
Плагины SMTPУдобство, UI для настройкиДополнительная нагрузка, возможные конфликтыНовички, без навыков кода
Решение проблемы: не работает корзина WooCommerce после обновления
25.04.2026
Как использовать хуки WordPress для изменения функционала сайта
08.12.2025
WooCommerce: как правильно настроить отправку писем без плагинов
07.08.2026
Как автоматически отключать плагины в WordPress при ошибках
02.04.2026
Как отключить AJAX-подгрузку в WooCommerce без плагинов
27.05.2026