Данная статья предназначена для сайтов, размещаемых в старом окружении. Отправку писем сайтов, размещаемых в современном окружении, можно найти по ссылке
В рамках борьбы со спамом многие хостинг-провайдеры периодически усложняют алгоритмы антиспам-фильтров и повышают требования к входящей электронной почте. Такие настройки, как 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 посредством почтового клиента ssmtp.
1) В личном кабинете в разделе “Почта” создайте почтовый ящик для отправки писем, например, website@sitename.ru
. Подробная инструкция по созданию почтового ящика здесь.
2) Подключитесь к серверу хостинга по SSH (инструкция) и перейдите в каталог bin
в вашем контейнере.
cd ~/bin
3) Скачайте утилиту ssmtp, которая будет выполнять отправку писем c сайта и дайте ей права на исполнение. Для этого выполните команды:
curl -o ssmtp https://noc.netangels.ru/static-builds/ssmtp-static
chmod +x ssmtp
4) Перейдите в папку сайта
cd ~/sitename.ru
и создайте файл ssmtp.conf
nano ssmtp.conf
5) Вставьте блок с настройками
# настройка ssmtp
mailhub=mail.netangels.ru:587
AuthUser=website@sitename.ru
AuthPass=XegohCiaNgiesie9
AuthMethod=LOGIN
UseSTARTTLS=NO
UseTLS=YES
TLS_CA_File=/etc/ssl/certs/ca-certificates.crt
FromLineOverride=YES
Вместо website@sitename.ru
укажите свой почтовый ящик и пароль от него.
6) Сохраните файл комбинацией клавиш ctrl+s
.
7) В личном кабинете перейдите в панель управления сайтом, на вкладку PHP и добавьте настройку:
sendmail_path = "~/bin/ssmtp -C ~/sitename.ru/ssmtp.conf -t"
Вместо sitename.ru
пропишите имя вашего сайта.
На этом всё, настройка завершена. Теперь письма с вашего сайта будут отправляться по SMTP через почтовый сервер mail.netangels.ru с помощью почтового клиента ssmtp. Логи отправки будут храниться в каталоге ~/sitename.ru/log
.