Отправка писем по SMTP с помощью ssmtp

Отправка писем по SMTP с помощью ssmtp

Данная статья предназначена для сайтов, размещаемых в старом окружении. Отправку писем сайтов, размещаемых в современном окружении, можно найти по ссылке

В рамках борьбы со спамом многие хостинг-провайдеры периодически усложняют алгоритмы антиспам-фильтров и повышают требования к входящей электронной почте. Такие настройки, как 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. Подробная инструкция по созданию почтового ящика здесь.

2024-03-21_21-08-17.png

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"

stat_smtp_2.png

Вместо sitename.ru пропишите имя вашего сайта.

На этом всё, настройка завершена. Теперь письма с вашего сайта будут отправляться по SMTP через почтовый сервер mail.netangels.ru с помощью почтового клиента ssmtp. Логи отправки будут храниться в каталоге ~/sitename.ru/log.

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
21 год
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865