В рамках борьбы со спамом многие хостинг-провайдеры периодически усложняют алгоритмы антиспам-фильтров и повышают требования к входящей электронной почте. Такие настройки, как SPF (Sender Policy Framework) и DKIM (DomainKeys Identified Mail), становятся обязательными для корректной работы электронной почты, и многие провайдеры отказываются принимать входящие письма, если они не выполнены.
Задача с SPF легко решается посредством добавления TXT-записи в DNS зону домена:
. TXT v=spf1 a include:netangels.ru ~all
Если у вас уже имеется SPF запись, просто отредактируйте ее и добавьте блок include:netangels.ru
.
Как работать с DNS, рассказывается в этой статье.
Однако, задача с DKIM уже не такая простая. В связи с тем, что на сервере хостинга у вас нет административных прав, вы не можете добавить цифровую подпись DKIM к отправляемым письмам. Но этот вопрос можно решить, переключив в настройках сайта отправку писем через SMTP сервер mail.netangels.ru, на котором DKIM подключается автоматически при создании почтового сервера. В нашей статье по настройке отправки почты с сайта описано, как это реализуется в некоторых CMS.
Но что делать администраторам, чьи сайты на PHP не имеют такой функционал? Конечно, можно обратиться к web-разработчикам и заказать реализацию подобного модуля. Но такой вариант потребует дополнительных финансовых затрат и времени. Однако, есть способ проще и не требующий никаких затрат!
Итак, в данной статье мы расскажем, как вы можете настроить отправку писем с сайта по SMTP посредством почтового клиента msmtp.
1) В личном кабинете в разделе “Почта” создайте почтовый ящик для отправки писем, например, website@sitename.ru
. Подробная инструкция по созданию почтового ящика здесь.
2) Перейдите в раздел “Хостинг”, выберите нужный контейнер, сайт и на вкладке “Файлы” откройте “Файловый менеджер”.
3) В главном меню выберите “Файл” / “Создать” / “Новый файл”. Используйте имя .msmtprc
4) После создания файла кликните по нему правой кнопкой мыши и выберите “Изменить атрибуты”. Установите кодовое значение 600
(Чтение и Запись для владельца).
5) Теперь по двойному клику левой кнопкой мыши откройте файл на редактирование и вставьте в него блок с настройками
# настройка msmtp
account cXXXXX
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/sitename.ru/log/msmtp.log
host mail.netangels.ru
port 587
from website@sitename.ru
user website@sitename.ru
password XegohCiaNgiesie9
Обратите внимание, здесь cXXXXX
- логин вашего контейнера хостинга. Так же вместо website@sitename.ru
укажите свой почтовый ящик и пароль от него.
6) Сохраните файл. Файловый менеджер можете тоже закрыть, он больше вам не потребуется.
7) В личном кабинете перейдите в панель управления сайтом, на вкладку PHP и добавьте настройку:
sendmail_path = "/usr/bin/msmtp -C ~/sitename.ru/.msmtprc -t -a cXXXXX"
Вместо sitename.ru
пропишите имя вашего сайта, а вместоcXXXXX
укажите логин контейнера, который вы использовали в конфигурационном файле .msmtprc.
На этом всё, настройка завершена. Теперь письма с вашего сайта будут отправляться по SMTP через почтовый сервер mail.netangels.ru с помощью почтового клиента msmtp. Логи отправки будут храниться в каталоге ~/sitename.ru/log
.