Как правильно настроить DNS для почтового сервера.

Очень часто, используя свой почтовый сервер, многие сталкиваются с проблемой попадания в спам, при отправке писем. Я перерыл много литературы, и наконец нашел правильное решение этой проблемы. Сегодня мы поговорим о том как правильно настроить DNS для почтового сервера, чтобы ваши письма не попадали в спам Google и других почтовых систем.

Image result for no spam email

Было найдено несколько интересных и полезных статей на эту тему (ссылки в конце статьи), на основе которых и было всё сделано в итоге. Но получив сегодня утром очередную порцию рассылки от достаточно известных русскоязычных ресурсов и увидев, что они пренебрегают описанными правилами, я решил кратко и в одном месте собрать все действия, которых достаточно для решения проблемы. Надеюсь, что после этого количество сайтов, отправляющих почту как надо, возрастет.

Приведенные советы актуальны только если вы используете свой собственный SMTP-сервер. При использовании, например, SMTP сервера Google всё уже сделано за нас. Как правило. В любом случае рекомендую проверить (см. подразделы Как проверить?).

Пункты расположены по степени значимости. Лучше не приступать к следующему, не завершив предыдущий.

Пропишите Reverse DNS

Название говорит само за себя. Reverse DNS lookup — процедура обратная DNS lookup. По IP адресу мы, а точнее почтовый сервер пользователя, получаем доменное имя. Если он совпадает с доменным именем в поле From, отправляемого письма, то всё в порядке.

Как сделать?
В большинстве случаев вы сами не сможете это сделать, если не являетесь владельцем диапазона IP-адресов. Поэтому единственный способ сделать данную настройку — попросить сделать это вашего хостинг-провайдера.

Как проверить?
Используйте любой из online-сервисов Reverse DNS lookup. Например, этот. Достаточно ввести IP-адрес сервера, с которого производится отправка почты. Если в результате отображается ваш домен, то всё в порядке.

[ad name=»Responbl»]

Настройте DomainKeys

DomainKeys Identified Mail (DKIM) — метод, позволяющий убедиться, что почта отправлена тем, кто имеет на это право. По сути это протокол цифровой подписи письма.

Как сделать?
Рекомендую воспользоваться очень удобным сервисом, который автоматически генерирует пару ключей и описывает, что необходимо сделать по шагам.

Если нет желания доверять свой приватный ключ внешнему сервису, то можно воспользоваться OpenSSL:

openssl genrsa -out private.pem 1024
openssl rsa -pubout -in private.pem -out public.pem

В любом случае дальнейшие шаги следующие:

  1. Настроить ваш SMTP-сервер.
  2. Прописать две записи в DNS.

Для настройки SMTP-сервера необходимо, чтобы собственно сервер поддерживал DKIM и указать путь к приватному ключу в его настройках.
Если вы хотите делать подпись в своем коде, то скорее всего, придется найти библиотеку, поддерживающую DKIM при работе по SMTP.

В DNS своего домена теперь надо прописать две TXT-записи:
_domainkey.example.com. TXT "t=s; o=~;"
mail._domainkey.example.com. TXT "k=rsa; t=s; p={REPLACE_WITH_PUBLIC_KEY_CONTENT}"

mail — это селектор DomainKeys. По факту может быть любым идентификатором, но должен совпадать с тем, что указан в настройках DKIM SMTP-сервера.

Как проверить?
Отправьте почту через ваш сервис на любой GMail-аккаунт. Откройте полученное письмо и выберите в меню действий пункт Show Original.

Если вы найдете следующую строчку, то всё в порядке:
Authentication-Results: ... dkim=pass

[ad name=»Responbl»]

Настройте DNS записи SPF

Sender Policy Framework — система, позволяющая указывать IP-адреса, с которых разрешена отправка в DNS-записях домена.

Как сделать?
Подробное описание синтаксиса доступно здесь.

В большинстве случаев достаточно следующей записи:
example.com. TXT v=spf1 a mx ~all

Эта запись говорит о том, что почту можно отправлять с любого IP, указанного в записях A (AAAA) и MX данного домена и только с них.

Как проверить?
Отправьте почту через ваш сервис на любой GMail-аккаунт. Откройте полученное письмо и выберите в меню действий пункт Show Original.

Если вы найдете следующие строчки, то всё в порядке:
Received-SPF: pass
Authentication-Results: ... spf=pass

Итого

Описанные действия должны значительно уменьшить вероятность попадания ваших писем в спам. Все остальные приемы связаны с содержимым письма или с тем как на него реагируют пользователи (часто ли они помечают ваше сообщение как спам?). Но это уже отдельная история.

Ссылки:

So You’d Like to Send Some Email (Through Code)
DKIM — это просто
SPF Record Syntax

Click to rate this post!
[Total: 5 Average: 2.8]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.