Настройка SPF записи
Настраивал сервер. Задача следующая: чтобы почта отправлялась с сервера скриптами, а за работу пользовательских ящиков отвечала почта Яндекса (для Google почты будет аналогично). Настроил. Отправляю почту с сервера - проверка проходит отлично. Отправляю через Яндекс на Mail.ru - почта проходит. Понадобилось отправить стороннему пользователю в его почтовую систему - мне приходит ошибка:
<mail@host.ru>: host post.host.ru[ip.add.re.ss] said: 550 5.7.1
<mail@host.ru>: Recipient address rejected: Message rejected due to:
domain owner discourages use of this host. Please see
http://www.openspf.org/Why?s=mfrom;id=my@domain.ru;ip=yan.dex.ip.addr;r=mail@host.ru
(in reply to RCPT TO command)
Т.е. почта с Яндекса не была принята, как разрешённая для моего домена, т.к. не была прописана в DNS в SPF записи. Захожу в помощь Яндекса, там сказано: пропишите v=spf1 redirect=_spf.yandex.ru в SPF записи. Но для меня-то это не выход, мне нужно чтобы и с моего сервера всё шикарно уходило.
Оказалось всё просто. Нашёл подобную проблему с Google почтой. И переписал для Яндекса свой SPF:
@ IN TXT "v=spf ip4:my.ip.add.ress a mx include:_spf.yandex.ru ~all"
Что примерно означает следующее: к адресам, с которых можно принимать от моего сервера почту, относятся:
- IP адрес my.ip.add.ress
- Все A-записи моего домена в DNS
- Все MX-записи моего домена в DNS
- И всё, что будет указано для домена _spf.yandex.ru
- Всех остальных игнорируем