dpkg-reconfigure exim4-config
Все! Сайт готов рассылать почту. Но здесь есть 3 «но». Почтовики очень любят SPF, PTR и DKIM и очень не любят их отсутствие. Далее описывается как настроить это буквально за несколько минут. PTR
Сначала настроим PTR. PTR это так называемая «обратная запись». В ней в обратном порядке записывается IP адрес хоста, с которого в нашем случае рассылается почта. По этой записи почтовики распознают имя хоста по его IP. Немного теории здесь.Предположим, что IP вашего почтового сервера 78.56.158.23. Открываем наш NS сервер (или, что чаще настройки провайдера сервера или хостера) и добавляем следующую DNS запись (IP при этом «разворачиваем»):
23.158.56.78.in-addr.arpa IN PTR mail.mydomain.ru.
Проверяем изменения — http://centralops.net/co/DomainDossier.aspxЗдесь остается добавить, что такая запись у моего хостера FastVPS задается через панель веб-ребута.
SPF
В SPF записи мы указываем какие сервера имеют право отправлять почту с вашего домена. В самом простом случае эта запись выглядит следующим образом:
mydomain.ru. IN TXT "v=spf1 a mx ~all"
или/и (если NS позволяет создавать SPF записи)
mydomain.ru. IN SPF "v=spf1 a mx ~all"
Т.е. отправлять почту имеют право сервер с DNS записью в секции «a» и почтовый сервер в секции «mx».Более подробно о SPF написано в статье "Что такое SPF".Составить свой вариант записи SPF поможет этот сервис — openspf.orgОпять проверяем результат через сервис centralops.net.
DKIM
Для создания успешной рассылки осталось создать подписи к письмам.Устанавливаем dkim-filter:
apt-get install dkim-filter
Затем генерируем пару ключей для подписи писем (открытый и закрытый ключ):
dkim-genkey -d mydomain.ru -s mail -r
-r значит, что ключ будет использоваться только для почты-s задает имя dkim-selector (можно указать любое имя, например имя вашего домена)Смотрим, что получилось при генерации открытого ключа:
tail mail.txt
И видим:
mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCS..." ; ----- DKIM mail for mydomain.ru
Сам ключ обрезал, потому что он довольно длинный.Копируем содержимое этого файла и вставляем в DNS записи нашего сервера. Все, с открытым ключом мы закончили.У нас остался закрытый ключ mail.private, который нам надо привязать к Exim.Переименовываем mail.private и копируем его в директорию exim:
mv mail.private mydomain.ru.key
cp mydomain.ru.key /etc/exim4
chmod 755 /etc/exim4/mydomain.ru.key
или же лучше сделать хозяином файла пользователя exim командой chown и сделать права на доступ к нему, к примеру, 600 или еще строже 400:
chown exim:exim /etc/exim4/mydomain.ru.key
chmod 600 /etc/exim4/mydomain.ru.key
И теперь осталось настроить сам Exim:
nano /etc/exim4/exim4.conf.template
Находим секцию remote_smtp и перед ней добавляем:
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/exim4/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
И немного правим саму секцию:
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = mail
dkim_private_key = DKIM_PRIVATE_KEY
где dkim_selector это первое слово перед ._domainkey в открытом ключеПосле перезапускаем exim:
/etc/init.d/exim4 restart
Теперь проверим подписи. Для этого можно просто отправить письмо на любой адрес Gmail. Затем надо посмотреть подробные сведения о письме и в поле «Подписан» должен быть ваш домен. Или можно посмотреть код письма и в заголовке письма должно присутствовать поле DKIM-Signature. Если оно есть, то мои поздравления! Подписи работают!
Итоги
Вот таких трех простых шагов достаточно, чтобы ваша почта больше не попадала в спам (если вы конечно не спамер). У меня, например, до этих переделок почта с сайта практически всегда отправлялась Gmail в спам. Теперь же надо что-то невообразимое написать в письме, чтобы оно было помечено как спам. К счастью, все мои рассылки теперь доходят до адресатов.Напоследок можно сказать, что еще одним способом эффективной доставки почты является грейлистинг. В этом случае почтовый сервер, который получает вашу почту на первое сообщение отвечает временной ошибкой, вносит ваш сервер в "серый список", и только когда с вашего сервера придет повтор этого сообщения, то оно пропускается. Как правило спамерские программы не посылают повторов.В Exim по умолчанию включена система автоповторов для всех хостов. Вы можете усовершенствовать дефолтное правило, найдя в конфигурационном файле секцию RETRY CONFIGURATION и отредактировать согласно этой инструкции.В рамках данного топика не рассматривалось применение описанных технологий для приема писем на свой почтовый сервер. Это тема для другой статьи.Ссылки:Рекомендации по осуществлению массовых рассылокПочтовая кухня #1: DNSHOWTO: Exim & DKIM
http://habrahabr.ru/post/114852/
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021