Почта на VestaCP - сообщения не доставляются или попадают в спам

Если вы столкнулись с проблемой, кода при отправке почты с вашего VPS под управлением VestaCP, у получателей сообщения часто попадают в папку "Спам" или не доставляются. Особенно это касается адресатов системы mail.ru. Нужно проверить настройки почты и наличие ряда записей в NS домена исходящих сообщений.

Настройки VPS



1. Нужно правильный хост прописать. Идем в консоль и проверяем какое имя у нашего хоста [1]:

- hostname

Если получили ответ в виде localhost, то надо задать вместо него имя основного почтового домена, от которого будет приходить почта.

- nano /etc/hosts

В последней сроке добавляете ваш ip и доменное имя:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
11.11.11.1 maydomain.ru

2. Для корректной работы php функции sendmail надо поправить шблоны httpd [5]

Во все шаблоны apache находящиеся в папке /usr/local/vesta/data/templates/web/php-fpm, добавить строки:

<Directory %docroot%>
...
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@%domain_idn%"
</Directory>

Можно только в тот, который используется сайтом с которого будет осуществляться php рассылка.

Если у вас nginx+php-fpm, также добавьте в шаблон /usr/local/vesta/data/templates/web/php-fpm строку:

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f webmaster@%domain_idn%

Затем в в консоли сделать обновление web-доменов VestaCP:

v-rebuild-web-domains user

Проверьте, добавилась ли строка в конфигурационный файл web-домена - /home/vestauser/conf/web/


Настройка домена



Чтобы повысить техническое качество исходящих писем, помимо настроек сервера, надо добавить добавить SPF, DKIM и DMARK записи у домена, который будет фигурировать в адресе отправителя сообщений.

Вот две подробные инструкции, как это сделать [2] и [3]

Уточним, что правильная SPF запись: v=spf1 ip4:11.11.11.11 a mx ~all. См [4]

Проверка все ли правильно настроено



После проведения всех операций с почтой и доменами, рекомендуем пройти проверку исходящих сообщений через удобный сервис - https://www.mail-tester.com/. Вам предоставят тестовый адрес, на который можно отправить письмо. Далее проверьте оценку нажав на соответствующую кнопку под тестовым адресом.

Бонусы



1. Просмотр отправленной почты, команда mailq или через панель https://yourip.ru:8083/list/server/?mail.

Просматриваете в списке ID сообщения, например - 1j7O2j-0004bF-VC затем в командной строке:

exim -Mvh 1j7O2j-0004bF-VC

2. Проверка записи PTR для вашего IP. Через консоль:

nslookup -type=PTR 11.11.11.11

3. Неудачная доставка письма пишется в логи: /var/log/exim




[1] https://forum.vestacp.com/viewtopic.php?f=31&t=5118 (Как настроить почту в Vesta CP)
[2] https://timeweb.com/ru/help/pages/viewpage.action?pageId=13205865 (Настройка почты в VestaCP)
[3] https://beget.com/ru/articles/mail_dkim (Настройка DKIM)
[4] https://forum.vestacp.com/viewtopic.php?f=31&t=11280 (Памятка по настройкам)
[5] https://qna.habr.com/q/615233 Не приходит сообщение на почту с PHP формы. VestaCP?

| опубликовано: 28 Февраль 2020