WordPress не отправляет SMTP-почту даже при хуке phpmailer.

Вопрос или проблема

Я использовал данный код в своей дочерней теме (файл functions.php дочерней темы):

    add_action( 'phpmailer_init', 'wpse8170_phpmailer_init',0 );
function wpse8170_phpmailer_init( PHPMailer $phpmailer ) {
    $phpmailer->Host="your.smtp.server.here";
    $phpmailer->Port = 25; // может быть другим
    $phpmailer->Username="[email protected]"; // если требуется
    $phpmailer->Password = 'yourpassword'; // если требуется
    $phpmailer->SMTPAuth = true; // если требуется
    $phpmailer->SMTPSecure="ssl"; // включить, если требуется, 'tls' - другое возможное значение

    $phpmailer->IsSMTP();
}

Но он не отправляет SMTP-письма. Я проверил учетные данные SMTP с помощью программ SMTP (таких как wp mail SMTP), и они успешно отправляют тестовые письма, но когда я использую плагин Contact Form 7, письма больше не отправляются.
Мой хостинг cPanel/ GoDady

Может кто-то помочь мне?

1) Вы видите какие-либо ошибки в консоли разработчика вашего браузера? Совпадает ли ваш домен электронной почты с доменом вашего сайта? Есть ли какие-либо записи в логах, указывающие на то, почему письмо не отправлено успешно?
2) Если вы используете Contact Form 7, у него есть свой собственный класс почтовика, есть ли причина, по которой вам нужен плагин ph-mailer?

1) Я использую плагин WP Mail SMTP, он успешно отправляет тестовые письма, но это не влияет на Contact Form 7 или другие плагины форм обратной связи.
Я не вижу никаких ошибок в консоли разработчика моего браузера.
Мой домен электронной почты совпадает с доменом моего сайта.

2) Мой сервер ограничил функцию php mail(), и мне нужно использовать SMTP.

Какой SMTP-хост вы используете для отправки электронной почты? Установите плагин Flamingo, чтобы сохранить отправленные письма в базе данных. Это плагин, созданный автором Contact Form 7, и я считаю его полезным для решения подобных проблем.
Плагин Flamingo

Ответ или решение

Решение проблемы с отправкой SMTP почты в WordPress при использовании плагина Contact Form 7

Если вы столкнулись с проблемой отправки электронных писем через SMTP в WordPress, несмотря на правильное использование хуков PHPMailer и установку плагина WP Mail SMTP, доведитесь до логики устранения неполадок. Давайте подробно рассмотрим возможные причины проблемы и предложим эффективные решения.

1. Проверка конфигурации SMTP

Убедитесь, что ваш код настройки PHPMailer корректен. Ваш код должен выглядеть следующим образом:

add_action( 'phpmailer_init', 'wpse8170_phpmailer_init', 0 );
function wpse8170_phpmailer_init( PHPMailer $phpmailer ) {
    $phpmailer->Host = "your.smtp.server.here";
    $phpmailer->Port = 587; // часто используемый порт для TLS
    $phpmailer->Username = "your_email@example.com"; // ваша почта
    $phpmailer->Password = 'yourpassword'; // ваш пароль
    $phpmailer->SMTPAuth = true; 
    $phpmailer->SMTPSecure = "tls"; // используйте 'tls' или 'ssl' в зависимости от вашего SMTP-сервера

    $phpmailer->IsSMTP();
}

Важные аспекты:

  • Проверьте сервер SMTP, порт и протокол шифрования (SSL/TLS).
  • Используйте тестирование через внешние SMTP-клиенты (например, Postfix, Thunderbird), чтобы убедиться в правильности параметров.

2. Проверка плагина Contact Form 7

Плагин Contact Form 7 использует собственную реализацию отправки почты, которая может конфликтовать с вашим кодом. Убедитесь, что настройки самого Contact Form 7 также указаны правильно:

  • Проверьте, правильно ли настроены адреса "Кого" и "От кого" в настройках формы.
  • Убедитесь, что вы не переопределяете адреса для отправки почты, если они не указаны в функции PHPMailer.

3. Ведение логов

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

Установка Flamingo:

  • Перейдите в админ-панель WordPress, выберите "Плагины" -> "Добавить новый".
  • Введите "Flamingo" в строку поиска и установите данный плагин.

4. Проверка логов сервера

Вам необходимо проверить логи сервера на предмет ошибок, связанных с SMTP. Эти логи могут предоставить детальную информацию об ошибках отправки:

  • Войдите в cPanel и откройте раздел "Логи".
  • Найдите раздел "Ошибка" или аналогичные записи, чтобы выявить возможные проблемы.

5. Альтернативные решения

  • Использование других плагинов для SMTP: Рассмотрите возможность использования других плагинов SMTP, например, Easy WP SMTP или Post SMTP Mailer/Email Log, которые могут предложить более универсальные и простые реализации.
  • Проверка с хостингом GoDaddy: Поскольку ваш хостинг — GoDaddy, свяжитесь с их технической поддержкой для подтверждения, что они не блокируют входящие или исходящие порты для вашего SMTP-сервера.

Заключение

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

Если у вас возникли дополнительные вопросы или проблемы, пожалуйста, не стесняйтесь обращаться за дальнейшей помощью.

Оцените материал
Добавить комментарий

Капча загружается...