Если вы столкнулись с проблемой, кода при отправке почты с вашего 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?