- Почему email не доставляются и пропадают
- Что сделать, чтобы письма доходили до адресата
- Как настроить подключение SMTP
- Настройка WP Mail SMTP
- Настройка Contact Form 7
- Установка и настройка почтового сервера
- Установка Postfix
- Установка Sendmail
- Что делать, если email не доходит
- Как проверить отправку email в PHP
- В заключение
Если вы на своём сайте активно используете email, а именно формы обратной связи, например, Contact Form 7, форумы с рассылкой сообщений или иные социальные плагины, то наверняка часто сталкивались с такой проблемой, как пропадание писем, попадание их в спам и т.д. Как этого избежать, поговорим далее.
Почему email не доставляются и пропадают
Письма могут пропадать в силу нескольких причин. Первая и самая главная — ваш email приняли за спам. Любой серьёзный почтовый сервис имеет свой мощный антиспам-модуль c эвристическим анализом содержимого email, не говоря уже о чёрном списке адресов. Поэтому, не переусердствуйте с рассылкой, чтобы не попасть в чёрный список спамеров.
Также, в спам попадут не подписанные электронной подписью письма. То есть, любой может отправить фишинговое письмо, скажем, от имени [email protected], однако, это будет безуспешно, т.к. отправитель вряд ли сможет подтвердить, что оно было отправлено с этого адреса. Для проверки легитимности используются подписи DKIM (DomainKeys Identified Mail) и SPF (Sender Policy Framework) записи.
Что сделать, чтобы письма доходили до адресата
Не переусердствуйте с рассылкой и настройте свой SMTP-сервер, чтобы исходящие email подписывались DCIM- и SPF-подписями. Вы можете настроить свой SMTP сервер, но чтобы не заморачиваться с настройкой, можно привязать домен к Яндекс.ПДД или Google Apps for Business и отправлять email через их сервис, и тогда все нужные заголовки будут прописываться автоматом. Но тут есть 2 оговорки
- Ваш хостинг-провайдер должен разрешать исходящие соединения, чтобы была возможность подключиться к внешнему SMTP серверу
- Объём рассылки не превышает 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
Если логин вида
[email protected]
, то нужно вписывать простоlogin
, без@yandex.ru
- Password — пароль от почты
Когда всё настроите, можете проверить, как получилось. Для этого введите в разделе ниже Send a Test Email ваш email, отправьте тестовое письмо и проверьте почту. Если всё в порядке, оно должно находиться там.
Настройка Contact Form 7
Допустим, мы зарегистрировали email [email protected]
и внесли его в настройки WP Mail SMTP
, тогда его нужно прописать в форме Contact Form 7
в разделе Письмо в поле От кого:
Не обращайте внимания на ошибку: Электронный адрес отправителя не принадлежит домену сайта., email будут отправляться верно с этого адреса.
Установка и настройка почтового сервера
Если лимиты внешнего SMTP-сервера не устраивают, можно использовать свой серверный вариант: установить Postifx или Sendmail. Оба отвечают за работу с email, в частности, их отправку и пересылку.
Установка происходит с помощью введения команд в консоль SSH. Инструменты: Far Manager или putty. Если работа не под
root
, не забываем перед командами даватьsudo
Установка Postfix
apt-get update && apt-get install postfix
В процессе установки будут заданы вопросы относительно настройки. Важно выбрать тип Internet Site. Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf
и сразу начал работу. В противном случае, Вам необходимо будет настраивать его вручную.
Установка Sendmail
Sendmail устанавливается примерно так же
apt-get update && apt-get install sendmail
Потом его сконфигурировать
sendmailconfig
После всего этого перезагрузить сервер
reboot
Что делать, если email не доходит
- Проверить правильность адреса, куда почта должна придти;
- Проверить папку Спам;
- Выждать пару минут.
Если по истечению времени письмо таки не дошло в почтовый ящик, хотя плагин просигнализировал об успешной отправке сообщения, возможно, хостинг не настроен должным образом.
Возможно, php просто не может отправлять письма.
Как проверить отправку email в PHP
3 команды, которые нужно ввести в консоль SSH последовательно:
php -a mail ('[email protected]', "Test Mailer", "Test mail from php mailer"); exit;
[email protected]
— это адрес, куда надо доставить тестовое письмо.
Если PHP не настроен на работу в консоли, можно попробовать следующее:
- Создать файл
test_email.php
; - Прописать туда:
<?php mail ('[email protected]', "Test Mailer", "Test mail from php mailer");
- Запустить файл командой
php -f test_email.php
Если на данном этапе возникает ошибка, попробуйте переустановить и правильно сконфигурировать Postfix или Sendmail.
Как вариант, ещё стоит попробовать проверить
sendmail_path
вphp.ini
.
В заключение
Отправка писем с помощью SMTP-сервера — это правильный подход к делу. Всегда используйте его, дабы это возможно практически на любом хостинге, и пусть ваши email доходят до адресата.
Если у вас возникли вопросы, что-то не получилось или не работает, пишите в комментариях, решим проблему.
Свежие комментарии