Когда мы только-только запустили наш сервис защищенной почты SFLetter.com оказалось, что такие сервисы как gmail.com, outlook.com и yahoo.com считают спамом письма, отправленные с нашего доменного имени. Это произошло из-за некорректных настроек DKIM.
DKIM (DomainKeys Identified Mail) – это технология, позволяющая установить отправлено ли данное письмо через авторизованные почтовые сервисы домена-отправителя или нет. Принцип работы DKIM основан на подписи письма на почтовом сервере приватным ключом, доступ к которому есть только у администратора домена. При получении письма почтовый сервер-получатель, обращается к соответствующему DNS-серверу с запросом публичного 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." – выбранный нами идентификатор пары ключей. Он должен быть таким же, какой настроен на нашем почтовом сервере – приватный и публичный ключи должны быть из одного набора.
Например:
Здесь параметр 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 мы усложнили жизнь спамерам.
Автор: Алексей Удалов
Если у вас есть идеи, как улучшить сервис, пожалуйста, поделитесь ими с нами или голосуйте за идеи от других пользователей.