• Программа для просмотра защищенных писем:
  • Блог
  • ЧаВо
  • О компании

Как не попасть в спам-листы или настройка DKIM-записи для почтового сервера

Когда мы только-только запустили наш сервис защищенной почты SFLetter.com оказалось, что такие сервисы как gmail.com, outlook.com и yahoo.com считают спамом письма, отправленные с нашего доменного имени. Это произошло из-за некорректных настроек DKIM.

Что такое DKIM и для чего это нужно


DKIM (DomainKeys Identified Mail) – это технология, позволяющая установить отправлено ли данное письмо через авторизованные почтовые сервисы домена-отправителя или нет. Принцип работы DKIM основан на подписи письма на почтовом сервере приватным ключом, доступ к которому есть только у администратора домена. При получении письма почтовый сервер-получатель, обращается к соответствующему DNS-серверу с запросом публичного DKIM-ключа и с его помощью проверяет корректна ли цифровая подпись. Если установлено, что это действительно подпись домена-отправителя, то в зависимости от настроек сервера-получателя, письмо может быть исключено из дальнейших антиспам-проверок и доставлено адресату или же ему снижается спам-рейтинг и запускаются дальнейшие проверки. Многие популярные почтовые службы при отсутствии DKIM-подписи у домена автоматически маркируют письма от этого домена как спам, поэтому настройка этой подписи необходима для нормальной работы почтового сервера организации.

Как настроить DKIM-подпись


Настройку DKIM-подписи можно разделить на 2 этапа:

  • генерацию приватного и публичного ключей;
  • настройка сервисов для использования этих ключей.

Первый этап: генерация ключей


Сгенерировать ключи можно вручную или с использованием специальных web-сервисов, например: https://www.dnswatch.info/dkim/create-dns-record, http://www.port25.com/support/domainkeysdkim-wizard/.

Для автоматической генерации ключей через web-сервис нужно указать имя своего домена, идентификатор ключа (он нужен, если в домене несколько почтовых серверов, тогда можно использовать собственный ключ для каждого сервера) и выбрать длину ключа. После завершения генерации появится страница, на которой можно увидеть приватный и публичный ключи, а также запись типа TXT для копирования ее на DNS-сервер домена. Тексты сгенерированных ключей нужно сохранить в файлы, отдельно для публичного и приватного ключа и ограничить доступ к последнему.

При самостоятельной генерации ключей можно использовать утилиту openssl. Сначала генерируем приватный ключ:


openssl genrsa -out mailprivate.key 1024

А потом на основе приватного генерируем публичный ключ:


openssl rsa -pubout -in mailprivate.key -out mailpublic.key


Этап второй: настройка сервисов


Начнем с DNS. Добавляем в нужную DNS-зону 2 новые записи типа TXT:


_domainkey.mydomain.com. IN TXT "o=~;"

Запись начинается со слова «_domainkey.», что говорит о её принадлежности к DKIM. И задаем параметр «о», который указывает на то, могут ли письма с этого домена отправляться неподписанными:

"о=~" допускает неподписанные письма;

"о=-" означает, что с данного домена отправляются только подписанные письма.

И вторая запись:


mail._domainkey.mydomain.com. IN TXT ( "v=DKIM1\; k=rsa\; p= "публичный ключ" )

Здесь "mail." – выбранный нами идентификатор пары ключей. Он должен быть таким же, какой настроен на нашем почтовом сервере – приватный и публичный ключи должны быть из одного набора.

Например:

mail._domainkey.mydomain.com. IN TXT ( "v=DKIM1\; k=rsa\; p= "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqnrNmHWqE1yNUAwpAaf8odbPjp9MoSltAfPMl6jZXt63/s8r6MB4kvQrIBukPNTH3b6s9obQLv/57wShPgLi20LBiCyUQuDlf0T8moYPC5Lt8VTFmD7VyEYAPUAuo+6rGSt4POoBLO1PBOLelWre+RHAvMGu26nxjmLlYjrbt5USUxI8CD+8UH/p62B6VDLSGGIfUg+g72RNhky5apQjliUzmGdGL1jxPRRqezodHb+ens2wTRh9EldUO2stgmV3JwOQdFVce4/vjnHXA0TNBIa29iBtYFHOWpOqIXoKXZNWpNyVddbDzhEZc6x1fbTok3F2hVmdbJB17/CtlWHFQIDAQAB" )

Здесь параметр v= указывает версию протокола DKIM, k= алгоритм генерации ключей, а p= значение публичного ключа.

Затем в почтовом сервере включаем опцию использования DKIM-подписи и указываем путь к файлу, в котором хранится приватный ключ. У каждого почтового сервера свои настройки, поэтому для корректной настройки функции DKIM лучше обратиться к официальной документации.

На этом настройка DKIM в домене завершена. Теперь необходимо проверить корректность работы наших настроек. Для этого мы отправляем письмо из нашего домена на предварительно настроенные аккаунты в популярных почтовых службах, поддерживающих технологию DKIM, таких как gmail.com, outlook.com, mail.ru, yandex.ru и т.п., и проверяем заголовки полученных писем, там обязательно должны строчка dkim=pass, показан пример для сервиса gmail:


Authentication-Results: mx.google.com;
    spf=pass (google.com: domain of test@mydomain.com designates 1.1.1.1 as permitted sender) smtp.mail=test@mydomain.com;
    dkim=pass header.i=test@mydomain.com

После настройки DKIM наш сервис защищенной почты SFLetter.com стал более надежным, наши электронные письма быстрее доходят до адресата из-за пропуска спам-проверок и, наконец, настройкой DKIM мы усложнили жизнь спамерам.


Автор: Алексей Удалов



Если у вас есть идеи, как улучшить сервис, пожалуйста, поделитесь ими с нами или голосуйте за идеи от других пользователей.

ГОЛОСОВАТЬ