Блог

Решение проблем с отправкой почты, настройка SPF и DKIM
12 октября 2016 17:10

Самый простой и очевидный способ гарантировать с доставку почты из Elite-Board - это настройка отправки писем через SMTP. Например, через SMTP серверы mail.ru или gmail

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

 

Обязательным условием является отправка писем с обратным адресом на домене вашего сайта. Т.е. если доска объявлений расположена на example.com, адрес отправителя должен быть н-р info@example.com Желательно также иметь фиксированный выделенный ip и VPS сервер.

Проще всего в этом случае настроить SPF. SPF - общедоступная текстовая запись на DNS сервере, которая позволяет принимающей стороне убедиться что от имени вашего домена отправляется письмо именно с вашего сервера.

Выясните IP адрес сервера, на котором расположен сайт. Затем зайдите панель управления DNS вашего домена. Эта панель может быть на сайте хостинг провайдера или на сайте регистратора доменного имени. Добавьте TXT запись вида

v=spf1 ip4:111.111.111.111 ~all

Если ваш сервер работает также по ipv6, его нужно добавить -

v=spf1 ip4:111.111.111.111 ip6:ip6:1a01:1a01:1a01::1a01:1a01 ~all
В некоторых случаях следует заключить эту строку в кавычки
"v=spf1 ip4:111.111.111.111 ip6:ip6:1a01:1a01:1a01::1a01:1a01  include:_spf.google.com ~all"

Узнать IP адрес и SPF запись для своего сайта можно здесь

SPF запись настроена! Чтобы убедиться что всё работает, через несколько часов отправьте любое письмо и проверьте его заголовки. Вы должны увидеть строку Authentication-Results: spf=pass

DKIM - цифровая подпись, которая также гарантирует, что ваше письмо было с вашего сервера, а его содержимое не было изменено. Чтобы настроить DKIM нужно иметь доступ к командной строке сервера. Для различных почтовых серверов настройка DKIM осуществляется по-разному. Далее речь пойдёт о почтовом сервере sendmail в операционной системе ubuntu.

Устанавливаем opendkim

sudo apt-get install opendkim

Открываем на редактирование /etc/opendkim.conf, я использую редактор nano

sudo nano /etc/opendkim.conf

Выставляем настройки по примеру (обратите внимание на параметры Domain и Socket)

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   002

# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
Domain                  example.com
KeyFile					/etc/mail/dkim.key
Selector                mail

# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization       simple
#Mode                   sv
SubDomains              yes
#ADSPDiscard            no

# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier.  From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders         From

# List domains to use for RFC 6541 DKIM Authorized Third-Party Signatures
# (ATPS) (experimental)

#ATPSDomains            example.com

Socket                  inet:8891@localhost

Теперь генерируем ключ, это можно сделать здесь

Скопируйте в надёжное место публичный ключ DKIM, он нам понадобится в дальнейшем.

Сохраняем текст приватного ключа в /etc/mail/dkim.key

Затем устанавливаем CHMOD на файл. Это нужно сделать обязательно

chmod 0600 /etc/mail/dkim.key

Теперь редактируем /etc/mail/sendmail.mc, добавляем в конец всего одну строчку

INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl

И выполняем команду

m4 sendmail.mc > sendmail.cf

А затем

service opendkim restart
service sendmail restart

Если всё запустилось без ошибок, можно приступить к настройке DNS.

В панели управления регистратора доменного имени или хостинг провайдера переходим в раздел "Управление DNS" и добавляем TXT запись для поддомена mail._domainkey

v=DKIM1;k=rsa;t=s;p=public_key

где вместо public_key будет запись DKIM, которую вы скопировали ранее

Т.е. запись будет такого вида

v=DKIM1;k=rsa;t=s;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyuBL+4nNlprT5jeGWtM/fTOvZB1wPHNhLdC4nFa+KTgPux8VZqjiyRkri76M/0v810U4M0Vj4O0qaTUOrBVsjh8061C9BuKgzuQX770Er5bzJpk3BWXmYAeRZVz5BZLTwKYsK7wxbkMV9w72IpdmjbV7n3Siug5pgH9Md4kzWnwIDAQAB

Это всё, через несоко часов в заголовках писем с вашего сервера вы должны увидеть Authentication-Results: dkim=pass

Ваша оценка:

Комментировать

Ваше имя:
Ваш email:
(не публикуется)
Комментарий:
 
Введите код:
 

Комментарии

Комментариев пока нет