Почему не отправляются письма на mail.ru

 3 сентября 2013      
 Хостинг      
 1 комментарий

При смене хостинга столкнулся с проблемой, что не все письма отправленные с сервера доходят до адресатов. В частности пострадали пользователи mail.ru.

Конфигурация оборудования

Описанное недоразумение появилось у меня на виртуальном сервере от компании DigitalOcean в следующей конфигурации:

  • OS — CentOS 6.4 x86_64
  • Control Panel — VestaCP
  • CMS — MaxSite
  • PHP — 5.3
  • MySQL — 5.1
  • Mail Server — Exim 4.72
  • Забегая вперед скажу, что проблема не в программно-аппаратной начинке. А лишь в настройке некоторых параметров.

    Как правильно настроить сервер чтобы уходила почта

    В борьбе со СПАМом и нежелательными сообщениями почтовые серверы проверяют друг друга по многим параметрам на предмет «свой-чужой». Поэтому необходимо правильно произвести все настройки, чтобы не иметь проблем с доставкой сообщений.

    PTR запись

    В целях уменьшения объёма нежелательной корреспонденции (спама) многие серверы-получатели электронной почты могут проверять наличие PTR записи для хоста, с которого происходит отправка. Это так называемый обратный DNS (revers DNS). То есть когда какому-нибудь IP приводится в соответствие символьное имя.

    В обычной DNS записи имени домена соответствует конкретный IP адрес. К примеру yandex.ru -> 77.88.21.11. PTR запись — это обратное соответствие 77.88.21.11 -> yandex.ru.
    Отсутствие PTR записи или неправильное ее значение снижает доверие к такому серверу.
    Чтобы изменить PTR запись на хостинге DigitalOcean достаточно переименовать Droplet имя вашего сервера в панели управления.

    Особо хочется отметить, что PTR запись настраивается на сервере и никаким боком не относится к DNS. Если такой опции нет в панели управления сервером, то необходимо просить хостера провести такую настройку.
    Проверить PTR запись можно утилитой nslookup

    Hostname сервера

    Необходимо привести в соответствие между собой имя сервера с которого отправляется почта и доменное имя. Для этого измените HOSTNAME сервера на имя домена, значение должно быть FQDN доменом. По простому говоря, если Вы зарегистрировали домен mydomain.com и используете это имя для хостинга на своем сервере, то и значение HOSTNAME должно быть mydomain.com. На CentOS это можно сделать так:

    # hostname mydomain.com
    

    Также следует внести изменения в файл /etc/sysconfig/network присвоив переменной HOSTNAME имя вашего домена:

    NETWORKING=yes
    HOSTNAME=mydomain.com
    

    Как Вы догадались значение HOSTNAME в обоих случаях и PTR запись должны быть одинаковыми и совпадать с записью A в NS серверах.
    Так же желательно добавить имя Вашего домена в файл /etc/hosts. [подробнее]


     Метки:  , ,

Обсуждение: есть 1 комментарий

  1. Виталий:

    Спасибо! Переименование дроплета на океане помогло. Почта сразу стала переадресовываться на внешний ящик. Спасибо! Никогда бы не догадался!

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Технический блог © 2016
SQL - 42 | 0,149 сек. | 7.01 МБ