Хостинг
VDS
Аренда серверов
Домены
Почта
SSL
Хранилище
Сайты
Обзоры
Регламенты
AI Studio
Kubernetes
Архив
Отправка писем по SMTP с помощью msmtp на хостинге

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

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

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

2) Перейдите в раздел “Хостинг”, выберите нужный контейнер, выберите сайт и откройте “Файловый менеджер”.

3) В главном меню выберите “Файл” / “Создать” / “Новый файл”. Используйте имя .msmtprc

4) После создания файла кликните по нему правой кнопкой мыши и выберите “Изменить атрибуты”. Установите кодовое значение 600 (Чтение и Запись для владельца).

2024-03-21_21-23-57.png

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 укажите свой почтовый ящик и пароль от него.

2024-03-25_20-40-30.png

6) Сохраните файл. Файловый менеджер можете тоже закрыть, он больше вам не потребуется.

7) В личном кабинете перейдите в панель управления сайтом, на вкладку PHP и добавьте настройку:

sendmail_path = "/usr/bin/msmtp -C ~/sitename.ru/.msmtprc -t -a cXXXXX"

stat_php_msmtp6.png

Вместо sitename.ru пропишите имя вашего сайта, а вместоcXXXXX укажите логин контейнера, который вы использовали в конфигурационном файле .msmtprc.

Для проверки отправки почты подключитесь по ssh, перейдите в папку сайта, для которого выполнялись настройки, и введите команду

php -r 'mail("my@mailbox.ru", "Subject", "test");'

Вместо my@mailbox.ru укажите почтовый ящик, на который нужно отправить письмо. Затем проверьте ящик. Если письмо дошло, значит настройки выполнены успешно. Если что-то настроено не так, то вы увидите сообщение об ошибке сразу после выполнения команды.

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

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
Заказать

Нам доверяют тысячи компаний и разработчиков

22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
ВК49865