Автоматическое отправление сообщений с формы обратной связи WordPress через SMTP

Одной из частых задач при разработке сайтов на WordPress является корректная и надежная отправка сообщений с формы обратной связи. Многие сталкиваются с проблемой, что письма либо не доходят до адресата, либо попадают в спам. В этой статье мы подробно разберем, как настроить автоматическую отправку писем с формы обратной связи WordPress через SMTP, чтобы повысить надежность и доставляемость писем.

Почему стандартная функция mail() в WordPress не всегда работает корректно

По умолчанию WordPress отправляет почту через функцию wp_mail(), которая в свою очередь использует PHP-функцию mail(). Однако эта функция часто ограничена на хостингах, письма могут блокироваться спам-фильтрами или вовсе не отправляться из-за отсутствия корректной настройки сервера.

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

Использование SMTP позволяет:

  • Отправлять письма с подлинного адреса и домена
  • Увеличить вероятность попадания писем во входящие, а не в спам
  • Использовать сторонние почтовые сервисы (Gmail, Яндекс.Почта, Mail.ru, сторонние SMTP-серверы)

Плагины для настройки SMTP в WordPress

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

WP Mail SMTP

Этот плагин позволяет указать любые SMTP-настройки, а также интегрируется с популярными почтовыми сервисами. Его преимущества:

  • Простая настройка через интерфейс
  • Поддержка Gmail, Outlook, SendGrid и других сервисов
  • Возможность тестовой отправки писем

Установить плагин можно через админку WordPress, затем в настройках указать SMTP-сервер, порт, имя пользователя и пароль.

Post SMTP Mailer/Email Log

Этот плагин также предоставляет SMTP-настройки и ведет лог отправленных писем, что удобно для отладки.

Пример настройки SMTP вручную через код

Если вы хотите обойтись без плагинов, можно добавить кастомный код в файл functions.php вашей темы или создать мини-плагин.

Ниже пример кода для отправки писем через SMTP Gmail:

add_action('phpmailer_init', 'wpquery_smtp_mailer');
function wpquery_smtp_mailer($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.gmail.com';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'your-email@gmail.com';
    $phpmailer->Password   = 'your-app-password';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From       = 'your-email@gmail.com';
    $phpmailer->FromName   = 'Your Site Name';
}

Обратите внимание, что для Gmail необходимо использовать пароль приложения, если включена двухфакторная аутентификация.

Как интегрировать SMTP с формой обратной связи

Если вы используете популярные плагины для форм, например Contact Form 7, Ninja Forms или Gravity Forms, то они автоматически используют функцию wp_mail() для отправки писем. После настройки SMTP через плагин или код письма будут отправляться через указанный SMTP-сервер.

Если же форма реализована самостоятельно, например, через AJAX и wp_mail(), никакой дополнительной настройки не потребуется.

Советы по улучшению доставляемости писем

  • Настройте SPF, DKIM и DMARC записи в DNS вашего домена. Это повысит доверие почтовых сервисов к вашим письмам.
  • Используйте отдельный email-аккаунт для отправки писем сайта.
  • Регулярно проверяйте логи отправки писем в плагинах (например, Post SMTP Mailer).
  • Не отправляйте спам — следите, чтобы письма были релевантными и содержали правильные заголовки.

Пример простой формы обратной связи с отправкой почты через wp_mail()

Если хотите создать собственную форму, вот пример минимального кода.

<form method="post" action="">
  <input type="text" name="wpquery_name" placeholder="Ваше имя" required>
  <input type="email" name="wpquery_email" placeholder="Ваш email" required>
  <textarea name="wpquery_message" placeholder="Сообщение" required></textarea>
  <button type="submit">Отправить</button>
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = sanitize_text_field($_POST['wpquery_name']);
    $email = sanitize_email($_POST['wpquery_email']);
    $message = sanitize_textarea_field($_POST['wpquery_message']);

    $to = 'admin@yourdomain.com';
    $subject = 'Новое сообщение с сайта';
    $headers = array('Content-Type: text/html; charset=UTF-8', 'From: '. $name .' <'. $email .'>');
    $body = 'Имя: ' . $name . '<br>Email: ' . $email . '<br>Сообщение: ' . nl2br($message);

    if (wp_mail($to, $subject, $body, $headers)) {
        echo '<p>Спасибо, сообщение отправлено.</p>';
    } else {
        echo '<p>Ошибка. Попробуйте позже.</p>';
    }
}
?>

После настройки SMTP этот код будет отправлять письма через ваш почтовый сервер.

Заключение

Настройка SMTP для отправки писем с формы обратной связи — важный шаг для любого проекта на WordPress. Это позволит избежать проблем с доставкой, повысить доверие к письмам и улучшить коммуникацию с посетителями сайта.

Рекомендуем начать с установки плагина WP Mail SMTP, а для продвинутых пользователей рассмотрите вариант кастомной настройки через код. Не забывайте про правильную конфигурацию DNS записей и тестирование отправки писем.

Если хотите ускорить работу с формами и почтой, обратите внимание на решения из каталога WPSHOP, где есть удобные плагины и темы для WordPress.

Как создать динамические виджеты с помощью REST API WordPress
09.04.2026
Как использовать WP_Query для эффективного кэширования запросов WordPress
27.03.2026
WordPress авторизация через социальные сети без плагинов
16.11.2025
Как избежать проблем с переполнением post meta в WordPress
13.04.2026
WooCommerce: как автоматически очищать корзину после отмены заказа
21.05.2026