Если на вашем сайте открытая регистрация или есть форум с оповещениями, то сайт наверняка отправляет немало писем по электронной почте. Все они, по умолчанию, отправляются через стандартный системный транспорт. Такой простой подход не требует дополнительных настроек, а письма отправляются весьма быстро. Однако, это накладывает и серьезные недостатки.
С ростом количества писем и их важности такой подход уже с натяжкой можно назвать допустимым и нередки случаи возникновения проблем. Например, ваши письма, отправленные сайтом, могут попадать в спам или не доходить до получателя вообще.
В большинстве случаев решением может стать отправка писем через сторонние сервисы, например Gmail или Яндекс почта для домена (ПДД). Также можно настроить отправку писем через ваш собственный почтовый сервер, который, как правило, есть даже на самом простом веб-хостинге.
Минусы отправки писем через системный транспорт
Как было отмечено выше, отправка писем в WordPress, по умолчанию, работает без дополнительных настроек, но цена этому весьма высока.
Письма могут попадать в спам
Обо всех спам-фильтрах и методах проверки писем, работающих, например, на Яндекс Почте или Gmail пожалуй знают лишь сотрудники этих компаний. Несмотря на большое количество закрытых от посторонних глаз инструментов для проверки входящих отправлений, есть несколько вещей, которые могут повысить доверие почтового сервиса к вашим письмам.
Письмо, отправленное через системный транспорт, не содержит дополнительных электронных подписей, которые могут свидетельствовать о надежности и легитимности отправителя. Пожалуй, многие знают, что любой человек может отправить письмо с чужого адреса, например, с admin@wpmag.ru не имея какого-либо доступа к самому домену и сайту.
Отправка писем через почтовый сервис позволит автоматически добавлять DKIM-подписи, свидетельствующие о надежности и легитимности отправителя. Отправляющие сервера (SMTP-серверы) Яндекс Почты и Gmail автоматически добавляют DKIM-подписи к каждому письму. С ними лишь владелец домена (и закрытого ключа DKIM) может отправлять письма с верными DKIM-подписями.
DKIM-подписи не отменяют того, что кто-то другой сможет отправить письмо используя ваш адрес (admin@wpmag.ru), но принимающий почтовый сервер будет видеть, что письмо отправил кто-то другой, а не владелец домена.
SPF-записи устанавливаются в настройках домена (DNS) и позволяют владельцу домена показать почтовым сервисам с каких серверов могут отправляться письма этого домена. Каждый почтовый сервис предлагает свою собственную SPF-запись со своим списком серверов. Если вы отправляете письма через Яндекс почту и делаете рассылки через Mailchimp, то необходимо совместить их SPF-записи в одну.
Письма могут пропадать
Еще один прием, который используется почтовиками для отсеивания плохих писем — это Greylisting. Здесь, в момент отправки письма, получающий сервер может ответить вашему сайту что-то вроде «я сейчас занят, зайди с этим письмом минут через десять». Сайт не знает что делать в таком случае — письмо было передано для отправки, на этом все, поэтому отправляемое письмо просто пропадет и не будет доставлено адресату.
Если ваше письмо отправляется почтовым сервисом, то ваш отправляющий сервер скажет «окей, гугл», отложит письмо в очередь неотправленной почты и будет пытаться доставить его еще несколько раз. Расчет прост — при отправке огромного количества почты за короткий промежуток времени, как это обычно делают спамеры, нет времени пытаться доставить письмо несколько раз.
Не дойти письмо может и в случае, если получающий сервер просто на время выключен или потерял доступ к сети. Поэтому отправка писем через SMTP более надежная.
Отправка писем через SMTP
Принципиальной разницы между отправкой через внешний почтовый сервис (Яндекс Почта, Gmail) или свой собственный SMTP-сервер нет. Это одно и тоже. Но если вы решили использовать свой собственный или выделенный хостингом SMTP-сервер, следует внимательно отнестись к его настройкам. Не забудьте установить правильные DKIM- и SPF-записи в настройках домена.
Google и Яндекс не запрещают отправку писем через свои сервера подобным образом, но имеют некоторые ограничения на количество отправляемых сообщений в день. Например, Gmail имеет явно указанное ограничение в 2000 писем в день. Яндекс не сообщает конкретных цифр, а служба поддержки намекнула, что этот показатель динамический.
Заметим, что на многих хостинг-площадках подключения к внешним серверам блокируются (информацию можно получить в поддержке хостинга или с помощью команды telnet
). В этом случае можно попросить поддержку хостинга разрешить подключения. Иногда такие просьбы могут принять во внимание. Или использовать внутренний почтовый сервер предоставляемый хостинг-провайдером. Как правило, он будет работать даже быстрее, чем внешний, потому что обычно располагается на том же физическом сервере, что и ваш сайт (веб-сервер).
На личном опыте было замечено, что Яндекс Почта для домена не сохраняет письма отправленные через SMTP-сервер в папке исходящих сообщений, а Gmail сохраняет.
Плагин WP Mail SMTP
Все письма в WordPress отправляются с помощью функции wp_mail()
, которая работает на популярной библиотеке PHP Mailer. Чтобы позволить WordPress и wp_mail()
отправлять письма через SMTP-сервер необходимо установить и настроить плагин WP Mail SMTP из официальной директории WordPress.org.
Активировав плагин, перейдите в раздел Настройки → Email в панели управления.
Займемся настройкой на странице Advanced Email Options. Ниже указано описание и необходимые значения для каждого пункта.
From Email — адрес, с которого будут отправляться письма и на который получатель отправит ответ, нажав на кнопку «Ответить» в своей почте.
From Name — имя отправителя, можно указать название сайта или свое имя и фамилию.
Mailer — отправка писем через системный транспорт (функция mail()
) или через SMTP-сервер. Выбираем «Send all WordPress emails via SMTP».
SMTP Host — адрес SMTP-сервера. Можно узнать у службы поддержки или в справочном разделе. Для Яндекс Почты используйте smtp.yandex.ru
, для Gmail — smtp.gmail.com
.
SMTP Port — порт SMTP-сервера, зависит от типа шифрования (Encryption). Для Яндекс Почты и Gmail используйте порт 465
.
Encryption — тип шифрования. Для Яндекс почты и Gmail необходимо установить «Use SSL encryption».
Authentication — требуется ли выполнять авторизацию на почтовом сервере. Устанавливаем «Yes: Use SMTP authentication».
Username — логин от почты. Как правило, полный адрес почтового ящика, должен совпадать со значением, указанным в поле From Email.
Password — пароль от почтового ящика.
Сохранив настройки, можно отправить тестовое письмо. Для этого введите адрес своего ящика и нажмите кнопку «Send Test». На указанный адрес будет отправлено небольшое письмо, а на экране появится служебная информация с результатами. Проверьте, пришло ли письмо на указанный адрес? Если нет, то что-то настроено неправильно и WordPress не сможет отправлять письма.
С помощью полученного тестового письма можно проверить корректно ли настроены DKIM и SPF. Для этого откройте исходный код письма. В Gmail это называется «Show Original». В Яндекс Почте «Свойства письма».
В заголовках письма должна содержаться строка «Authentication-Results». Если DKIM и SPF настроены правильно, то вы увидите spf=pass
и dkim=pass
.
Authentication-Results: mx.google.com; spf=pass (google.com: domain of mail@armyofselenagomez.com designates 2a02:6b8:0:1630::18 as permitted sender) smtp.mail=mail@armyofselenagomez.com; dkim=pass header.i=@armyofselenagomez.com
Яндекс почта показывает зеленую галочку рядом с письмом, если DKIM-подпись верна.
Полезные материалы и заключение
Отправление писем через SMTP-сервер более надежный и правильный способ доставлять письма. Чтобы использовать SMTP не обязательно разбираться с настройкой и администрированием почтовых серверов. Сервисы Яндекса и Google хорошо справляются с поставленной задачей и для небольшого проекта это то, что надо.
Настройка DKIM и SPF — тема для отдельной статьи. Руководства по настройке, как правило, можно найти в справочных разделах почтовых сервисов или узнать у службы поддержки хостинг-провайдера.
В популярной системе управления хостингом cPanel настройки почты вынесены в раздел «Почта». На вкладке «Проверка подлинности электронной почты» можно управлять настройками DKIM и SPF.
- Синтакс SPF-записей на официальном сайте.
- Настройка DKIM-подписей и SPF-записей в Google Apps.
- SPF для ПДД. DKIM-ключ для ПДД можно получить на странице настроек в Яндексе.
Если в ходе настройки и прочтения статьи у вас возникли вопросы, пожалуйста, напишите комментарий и мы постараемся помочь. Также вы можете поделиться своими историями о том, с какими проблемами сталкивались при отправке писем с сайта.