- Email рассылка — настраиваем SPF, DKIM, DMARC и PTR записи
- Как отправить подписанное DKIM письмо с сайта
- Настройка DKIM
- Настройка DKIM при отправке рассылок через хостинг Beget
- Настройка DKIM при отправке рассылок через сторонний сервис (на примере unisender.com)
- Настройка DKIM
- Настройка DKIM при отправке рассылок через хостинг Beget
- Настройка DKIM при отправке рассылок через сторонний сервис (на примере unisender.com)
Email рассылка — настраиваем SPF, DKIM, DMARC и PTR записи
Рано или поздно у больших проектов появляется задача отправлять не мало электронных писем своим пользователям. Конечно для этого можно использовать сторонние сервисы, которые есть и платные и бесплатные, но все же хотелось бы отправлять письма со своего сайта. Причем даже если сайт не на VPS или VDS сервере а на старом добром Shared хостинге.
В нашей статье рассмотрим настройку SPF, DKIM, DMARC и PTR записи на примере хостинга Beget.
У нас есть сайт cost-site.com (сайт может быть поддоменом, или сайт вида site.com или www.new.site.com и тд).
Задача: отправлять email письмо, средствами php mail() и при этом чтобы письмо проходило проверки и не попадало в спам в почтовых сервисах ( Яндекс, Gmail и тд).
Обратите внимание, что даже если вы настроите все как в нашей инструкции это не 100% гарантия того что письма не будут попадать в спам, но вероятность такого попадания в разы меньше.
Технология DKIM (DomainKeys Identified Mail) обеспечивает верификацию отправителя и гарантию целостности доставленного электронного сообщения. Подтверждение пользователя происходит на основе электронной подписи письма, создаваемой с применением асимметричной криптографии. Данная подпись добавляется в служебные заголовки письма и передается незаметно для конечного пользователя.
Открываем DKIM генератор
Заполняем форму и нажимаем кнопку Создать ключи. В качестве «Селектора» напишем текст mail (можно любой).
Инструмент генерирует нам Приватный и Публичный DKIM ключи, а также TXT запись и TXT значение. Не закрываем страницу с данным инструментом и скачиваем все эти данные, нажав кнопку «Скачать все в ZIP».
Полученный архив сохраняем на ПК и распаковываем все файлы в нем, некоторые файлы из этого архива нам понадобиться позже.
На странице с DKIM генератором скопируем параметр TXT значение
Теперь переходим в панель управления хостингом. И открываем раздел для настройки DNS.
Выбираем из списка наш домен.
И в разделе Быстрое добавление создаем TXT запись вида mail ._ domainkey . cost-site .com где mail это наш селектор выбранный при генерации DKIM ключей (вместо mail там мог быть любой текст, например info, ggg и тд) со значением которое мы скопировали в буфер обмена на странице генератора DKIM.
Теперь добавим TXT запись вида _domainkey.cost-site.com со значением o=-
o=-
Означает «все сообщения с этого домена подписываются»
Означает «некоторые сообщения с этого домена подписываются»
Далее добавим DMARC TXT запись вида _ dmarc .cost-site.com со значением v=DMARC1; p=none; ruf=mailto: info @cost-site.com
info @cost-site.com почта на которую будут приходить отчеты
SPF запись оставляем без изменений, так как отправка писем будет идти с сервера Beget. Подробнее о SPF записи можно почитать тут и тут
Проверим результат наших стараний с помощью инструмента Проверка SPF, DKIM, DMARC записей
Заполним поля формы нашими значениями и нажмем кнопку Анализ
Результат должен быть следующим
Теперь нам понадобится компонент PHPMailer. Скачать его можно на GitHub. Рекомендуем использовать версию 6.1.5. Данную версию вы можете скачать и с нашего сайта по этой ссылке
Извлекаем файлы из архива. Создаем в корне сайта папку PHPMailer. Копируем в нее ранее извлеченные файлы.
Теперь из архива скачанного со страницы генератора DKIM нам понадобится файл dkim_private.pem. Его нужно скопировать на наш сайт, но при этом нельзя чтобы доступ к нему могли получить третьи лица. В нашем примере данный файл мы скопируем в корень сайта.
Для тестирования наших писем мы воспользуемся сервисом https://www.mail-tester.com/. При переходе по ссылке вы увидите тестовую почту на которую нам нужно отправить письмо. А после отправки нажать кнопку «Затем проверьте оценку»
Как отправить подписанное DKIM письмо с сайта
Создаем файл test_mail.php в корне сайта со следующим содержанием:
Переходим по ссылке https://cost-site.com/test_mail.php и видим текст «Письмо успешно отправлено!» Смотрим оценку на mail-tester.com.
Внимание! Также возможно во время оценки будет сообщение что вам нужно настроить PRT запись! Для этого, вам нужно написать в поддержку хостинга и попросить его установить PTR запись для вашего домена. Но для этого у вас на аккаунте должен быть выделенный ip и ваш домен должен быть на этом выделенном IP. Хостинг может спросить какова цель добавления PRT запись, в ответ укажите что вам нужно чтобы при проверке на сайте https://www.mail-tester.com был максимальный результат.
А чтобы проверить наличие PRT записи у нас на SeoLik для этого тоже есть инструмент.
Источник
Настройка DKIM
В этой статье будет рассмотрена настройка цифровой подписи для Вашего домена.
Технология DomainKeys Identified Mail (DKIM) — это метод e-mail аутентификации: к отправленному письму добавляется заголовок DKIM-Signature, в котором содержится зашифрованная информация о домене отправителя. Таким образом, содержимое заголовка DKIM-Signature подтверждает отправителя письма. На стороне получателя подпись автоматически проверяется, после чего для определения репутации отправителя применяются «белые списки» и «черные списки». После оценки репутации отправителя письма это письмо может быть принято, помещено в папку «Спам», либо отправлено на дополнительную проверку.
Настройка DKIM при отправке рассылок через хостинг Beget
На хостинге Beget можно настроить DKIM-подпись для следующих способов отправки писем:
- через SMTP-сервер;
- через функцию PHP mail(), он же sendmail.
Для создания DKIM-подписи для писем, отправляемых средствами PHP mail(), потребуется выделенный IP-адрес, подключить его можно из Панели управления аккаунтом, в разделе Сайты. Далее для настройки DKIM-подписи необходимо написать тикет из раздела Помощь и поддержка, указав в нём домен сайта.
Для создания DKIM-подписи для писем, отправляемых средствами SMTP, необходимо написать тикет из Панели управления аккаунтом, раздел Помощь и поддержка, указав в нём домен сайта. Настройка DKIM для SMTP возможна только на оплаченных аккаунтах (минимум на месяц по текущему тарифному плану). Настройка DKIM-подписи с нашей стороны возможна только в том случае, когда рассылки отправляются через наш хостинг и почта работает через нас, то есть, в качестве MX записи у домена, будут значения:
Настройка DKIM при отправке рассылок через сторонний сервис (на примере unisender.com)
Также возможен вариант, когда рассылки производятся через сторонний сервис, либо настроен сервис «Яндекс.Почта» для домена и т.п. В этом случае нужно самостоятельно в разделе DNS в Панели управления внести необходимые записи.
Рассмотрим внесение нужных записей на примере сервиса unisender.com. Для других сервисов рассылки инструкция будет похожей.
1. Смотрим необходимые настройки на сервисе рассылок:
2. Переходим в раздел DNS в панели управления. В верхней части экрана выбираем домен, для которого будем редактировать DNS-записи. В нашем случае первые две строки с SPF-записью начинаются с символа @. Согласно RFC 1034, 1035 этот символ обозначает всю зону целиком. Нажимаем кнопку «открыть режим редактирования» справа от зоны, совпадающей с названием домена, и вносим нужные TXT-записи:
Если необходимо добавить spf2-запись, тогда уже создаётся новая TXT-запись. В нашем случае spf2-запись нужно добавить, сделаем это через форму быстрого добавления:
Итого мы добавили нужные TXT-записи:
3. Далее нам нужно создать подзону _domainkey и добавить в неё запись. Через форму быстрого добавления вводим название подзоны в поле name, выбираем тип записи TXT в поле type, и в поле data вставляем нужную нам запись:
4. Аналогично нужно создать подзону us._domainkey и добавить в неё запись с самой DKIM-подписью:
Итого добавленные записи выглядят следующим образом:
Обновление записей DNS происходит в течение 15 минут, после этого можно проверить наличие записи в системе DNS. Сделать это можно, к примеру, на сервисе G Suite, в качестве имени нужно ввести имя подзоны, например, us._domainkey.example.ru (вместо example.ru нужно подставить Ваш домен):
Чтобы удостовериться в том, что всё настроено правильно, нужно отправить письмо с ящика домена, для которого настроена цифровая подпись, и на принимающем ящике просмотреть заголовки письма. Там должен быть заголовок DKIM-Signature. Если этот заголовок есть, значит подпись работает. В случае, если письмо оказалось не подписано, необходимо обращаться в поддержку сервиса, через который отправляется письмо.
Для проверки через сервис Unisender была отправлена рассылка, и вот заголовок DKIM-Signature есть в технических заголовках письма:
Здесь видно, что DKIM-подпись работает.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».
Источник
Настройка DKIM
В этой статье будет рассмотрена настройка цифровой подписи для Вашего домена.
Технология DomainKeys Identified Mail (DKIM) — это метод аутентификации: к отправленному письму добавляется заголовок DKIM-ature, в котором содержится зашифрованная информация о домене отправителя. Таким образом, содержимое заголовка DKIM-ature подтверждает отправителя письма. На стороне получателя подпись автоматически проверяется, после чего для определения репутации отправителя применяются «белые списки» и «черные списки». После оценки репутации отправителя письма это письмо может быть принято, помещено в папку «Спам», либо отправлено на дополнительную проверку.
Настройка DKIM при отправке рассылок через хостинг Beget
На хостинге Beget можно настроить DKIM-подпись для следующих способов отправки писем:
- через SMTP-сервер;
- через функцию PHP mail(), он же sendmail.
Для создания DKIM-подписи для писем, отправляемых средствами PHP mail(), потребуется выделенный IP-адрес, подключить его можно из Панели управления аккаунтом, в разделе Сайты. Далее для настройки DKIM-подписи необходимо написать тикет из раздела Помощь и поддержка, указав в нём домен сайта.
Для создания DKIM-подписи для писем, отправляемых средствами SMTP, необходимо написать тикет из Панели управления аккаунтом, раздел Помощь и поддержка, указав в нём домен сайта. Настройка DKIM для SMTP возможна только на оплаченных аккаунтах (минимум на месяц по текущему тарифному плану). Настройка DKIM-подписи с нашей стороны возможна только в том случае, когда рассылки отправляются через наш хостинг и почта работает через нас, то есть, в качестве MX записи у домена, будут значения:
Настройка DKIM при отправке рассылок через сторонний сервис (на примере unisender.com)
Также возможен вариант, когда рассылки производятся через сторонний сервис, либо настроен сервис «Яндекс.Почта» для домена и т.п. В этом случае нужно самостоятельно в разделе DNS в Панели управления внести необходимые записи.
Рассмотрим внесение нужных записей на примере сервиса unisender.com. Для других сервисов рассылки инструкция будет похожей.
1. Смотрим необходимые настройки на сервисе рассылок:
2. Переходим в раздел DNS в панели управления. В верхней части экрана выбираем домен, для которого будем редактировать DNS-записи. В нашем случае первые две строки с SPF-записью начинаются с символа @. Согласно RFC 1034, 1035 этот символ обозначает всю зону целиком. Нажимаем кнопку «открыть режим редактирования» справа от зоны, совпадающей с названием домена, и вносим нужные TXT-записи:
Поскольку spf1-запись для домена у нас уже есть, просто добавляем в неё через пробел новый сервер, без создания новой TXT-записи. Если существует redirect, то значения типа include работать не будут, поэтому в нашем случае необходимо исправить redirect на include.
Если необходимо добавить spf2-запись, тогда уже создаётся новая TXT-запись. В нашем случае spf2-запись нужно добавить, сделаем это через форму быстрого добавления:
Итого мы добавили нужные TXT-записи:
3. Далее нам нужно создать подзону _domainkey и добавить в неё запись. Через форму быстрого добавления вводим название подзоны в поле name, выбираем тип записи TXT в поле type, и в поле data вставляем нужную нам запись:
4. Аналогично нужно создать подзону us._domainkey и добавить в неё запись с самой DKIM-подписью:
Итого добавленные записи выглядят следующим образом:
Обновление записей DNS происходит в течение 15 минут, после этого можно проверить наличие записи в системе DNS. Сделать это можно, к примеру, на сервисе G Suite, в качестве имени нужно ввести имя подзоны, например, us._domainkey.example.ru (вместо example.ru нужно подставить Ваш домен):
Чтобы удостовериться в том, что всё настроено правильно, нужно отправить письмо с ящика домена, для которого настроена цифровая подпись, и на принимающем ящике просмотреть заголовки письма. Там должен быть заголовок DKIM-ature. Если этот заголовок есть, значит подпись работает. В случае, если письмо оказалось не подписано, необходимо обращаться в поддержку сервиса, через который отправляется письмо.
Для проверки через сервис Unisender была отправлена рассылка, и вот заголовок DKIM-ature есть в технических заголовках письма:
DKIM-ature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=us; d=доменотправителя.ru; h=From:To:Message-Id:Subject:MIME-Version:Content-Type:List-Help:List-Id: List-Unbe::no; i=@доменотправителя.ru; bh=bXvoaXR+a1NFSNkUPp9bw+sm5KA=; b=Nel1LTDx3EMy9oPXgrnkVJSk7ZdWUKhuZiynSC5Voi9e/PY/46VF+CBgHD3I8fDdcOlKmsr1dbbo 9sYcRmIKFSTVG8PfYvEUUHeqC2K1BsvW+c8IStUGi1uAbISl2mP8di/wkoija+eBPZmPyov1/aYw Mq3HWOr7jBTH0x9RHbI= DKIM-ature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=jul2015; d=topeml.com; h=From:To:Message-Id:Subject:MIME-Version:Content-Type:List-Help:List-Id: List-Unbe:; bh=bXvoaXR+a1NFSNkUPp9bw+sm5KA=; b=eIDPgMsW3iZmHhoDEFebsbgubtxeLvMCgfu68bfvZ65pYs6PryApPXwJjdev4/2bwcYW3UybQ4oi CSowVihgzRP1bab6ZatiGHwVOQfJ04W1qafl2X0NQ/vkorP5ZdyA7V+k8tQNxdp1uL3Ce32kIk2M 1eORNohPUf9qbpOACLc=
Здесь видно, что DKIM-подпись работает.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».
Источник