Прочие статьи

Настройка отправки email писем в WordPress и WooCommerce

Настраивать нужно через SMTP — инструкция внутри

Если вы на своём сайте активно используете email, а именно формы обратной связи, например, Contact Form 7, форумы с рассылкой сообщений или иные социальные плагины, то наверняка часто сталкивались с такой проблемой, как пропадание писем, попадание их в спам и т.д. Как этого избежать, поговорим далее.

Почему email не доставляются и пропадают

Письма могут пропадать в силу нескольких причин. Первая и самая главная — ваш email приняли за спам. Любой серьёзный почтовый сервис имеет свой мощный антиспам-модуль c эвристическим анализом содержимого email, не говоря уже о чёрном списке адресов. Поэтому, не переусердствуйте с рассылкой, чтобы не попасть в чёрный список спамеров.
Также, в спам попадут не подписанные электронной подписью письма. То есть, любой может отправить фишинговое письмо, скажем, от имени email@email.email, однако, это будет безуспешно, т.к. отправитель вряд ли сможет подтвердить, что оно было отправлено с этого адреса. Для проверки легитимности используются подписи DKIM (DomainKeys Identified Mail) и SPF (Sender Policy Framework) записи.

Что сделать, чтобы письма доходили до адресата

У сайта sheensay.ru есть свой канал в Telegram — @sheensayru.
В нём публикуются ссылки на новые материалы сайта и интересные, по моему мнению, публикации. Подписывайтесь и будьте в курсе последних событий.
Спасибо, уже подписался

Не переусердствуйте с рассылкой и настройте свой SMTP-сервер, чтобы исходящие email подписывались DCIM- и SPF-подписями. Вы можете настроить свой SMTP сервер, но чтобы не заморачиваться с настройкой, можно привязать домен к Яндекс.ПДД или Google Apps for Business и отправлять email через их сервис, и тогда все нужные заголовки будут прописываться автоматом. Но тут есть 2 оговорки

  1. Ваш хостинг-провайдер должен разрешать исходящие соединения, чтобы была возможность подключиться к внешнему SMTP серверу
  2. Объём рассылки не превышает 2000 писем в день. Это лимит Google, у Yandex вряд ли больше

Если вы укладываетесь в вышеуказанные рамки, тогда вперёд, настроим подключение

Как настроить подключение SMTP

Чтобы настроить нормальную отправку писем, нужно установить плагин WP Mail SMTP. Он позволяет переконфигурировать стандартный PHP Mailer так, чтобы была возможность подключаться к SMTP серверу. Также, советую использовать его, если вы пользуетесь локальным сервером.

Настройка будет происходить под Яндекс. Гугл отметается, так как теперь там нет бесплатных тарифов

Настройка WP Mail SMTP

А вот описание опций

  • From Email — email отправителя. Вводим логин от почты полностью как на изображении вверху
  • From Name — Имя отправителя. Можете поставить сюда что хотите, например, адрес вашего сайта
  • Mailer — выбираем Send all WordPress emails via SMTP
  • Return Path — оставляем пустым
  • SMTP Host — адрес SMTP сервера. Вводим smtp.yandex.ru
  • SMTP Port — порт SMTP сервера. Вводим 587
  • Шифрование— тип шифровки писем. Выбираем TLS
  • Авторизация— авторизация. Выбираем Вкл
  • Username — логин от почты. Значение должно совпадать с From Email
    Если логин вида login@yandex.ru, то нужно вписывать просто login, без @yandex.ru
  • Password — пароль от почты

Когда всё настроите, можете проверить, как получилось. Для этого введите в разделе ниже Send a Test Email ваш email, отправьте тестовое письмо и проверьте почту. Если всё в порядке, оно должно находиться там.

Настройка Contact Form 7

contact form 7 через smtp yandex

Допустим, мы зарегистрировали email example@yandex.ru и внесли его в настройки WP Mail SMTP, тогда его нужно прописать в форме Contact Form 7 в разделе Письмо в поле От кого:

Не обращайте внимания на ошибку: Электронный адрес отправителя не принадлежит домену сайта., email будут отправляться верно с этого адреса.

Установка и настройка почтового сервера

Если лимиты внешнего SMTP-сервера не устраивают, можно использовать свой серверный вариант: установить Postifx или Sendmail. Оба отвечают за работу с email, в частности, их отправку и пересылку.

Установка происходит с помощью введения команд в консоль SSH. Инструменты: Far Manager или putty. Если работа не под root, не забываем перед командами давать sudo

Установка Postfix

1apt-get update && apt-get install postfix

В процессе установки будут заданы вопросы относительно настройки. Важно выбрать тип Internet Site. Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf и сразу начал работу. В противном случае, Вам необходимо будет настраивать его вручную.

Установка Sendmail

Sendmail устанавливается примерно так же

1apt-get update && apt-get install sendmail

Потом его сконфигурировать

1sendmailconfig

После всего этого перезагрузить сервер

1reboot

Что делать, если email не доходит

  1. Проверить правильность адреса, куда почта должна придти;
  2. Проверить папку Спам;
  3. Выждать пару минут.

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

Как проверить отправку email в PHP

3 команды, которые нужно ввести в консоль SSH последовательно:

123php -amail ('mail@example.com', "Test Mailer", "Test mail from php mailer");exit;

mail@example.com — это адрес, куда надо доставить тестовое письмо.
Если PHP не настроен на работу в консоли, можно попробовать следующее:

  1. Создать файл test_email.php;
  2. Прописать туда:1<?php mail ('mail@example.com', "Test Mailer", "Test mail from php mailer");
  3. Запустить файл командой1php -f test_email.php

Если на данном этапе возникает ошибка, попробуйте переустановить и правильно сконфигурировать Postfix или Sendmail.

Как вариант, ещё стоит попробовать проверить sendmail_path в php.ini.

В заключение

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

Комментарии к записи Настройка отправки email писем в WordPress и WooCommerce отключены