Я настраиваю свой linode-сервер для отправки почты из моего веб-приложения пользователям. Я мог бы использовать GoogleApps, но ограничение на 500 в день слишком жесткое, поэтому я пытаюсь настроить его сам.
Я установил Exim4 на своем сервере, используя эти инструкции, предоставленные linode. Все хорошо. Я тестировал отправку электронного письма на свой gmail / yahoo, используя эту команду на сервере:
$ echo "This is a test from myapp." | mail -s Testing myaddress@gmail.com
Я получаю письмо в свой почтовый ящик Gmail (не помеченный как спам), а также в свой Ymail (помеченный как спам). Чтобы меня не пометили как спам, я проверил заголовок отправленного электронного письма.
Я вижу эти строки (я запутываю с помощью XXX) в заголовке Gmail:
Received-SPF: neutral (google.com: 69.XXX.XXX.XXX is neither permitted nor denied by best guess record for domain of root@mail.myapp.com) client-ip=69.XXX.XXX.XXX;
Authentication-Results: mx.google.com; spf=neutral (google.com: 69.XXX.XXX.XXX is neither permitted nor denied by best guess record for domain of root@mail.myapp.com) smtp.mail=root@mail.myapp.com
Это заголовок электронного письма, которое получает Yahoo:
Received-SPF: none (mta1192.mail.mud.yahoo.com: domain of root@mail.myapp.com does not designate permitted sender hosts)
Похоже, что запись SPF не была установлена (а это не так). Поскольку домен принадлежит мне, я вставил этот текст SPF в свои записи:
http://img.skitch.com/20100712-gsi6gsqie7d41c35d8gmnxigu2.png
Если быть точным, я установил
1) поддомен mail.myapp.com к записи A, указывающей на мой IP.
2) запись TXT для "@" как "v = spf1 ip4: 69.XXX.XXX.XXX a a: mail.myapp.com ~ all"
Кажется, это все, что мне нужно сделать, чтобы правильно установить имена IP / доменов в качестве записи SPF. Однако при повторном тестировании gmail / yahoo он продолжает давать мне тот же статус «Нейтральный» в Gmail и статус спама в Yahoo.
Я подозреваю, что серверы Google Gmail / Yahoo Ymail должны кэшировать мою информацию DNS на своей стороне, и я буду продолжать получать этот статус «нейтральный / спам» до тех пор, пока запись DNS myapp.com не будет удалена из их кеша. Кто-нибудь знает, кэшируют ли они эту информацию и сколько времени обычно требуется, прежде чем информация SPF будет получена? Что-нибудь еще я мог сделать неправильно или должен проверить?
Для этих записей применяется тот же тип TTL, что и для обычных записей A. Значение TTL сообщает другим DNS-серверам, как долго можно безопасно кэшировать запись. Ваш установлен на 300 секунд (5 минут). Некоторые почтовые программы / DNS-серверы игнорируют значения TTL ниже определенного предела, поэтому может быть трудно быть на 100% уверенным, когда изменение распространится.
Если я правильно следую вашей настройке, у вас есть запись SPF в корне, но вы отправляете электронную почту из поддомена.
если «конверт из» письма - root@mail.myapp.com, тогда вам нужно изменить txt-запись «@» на «mail». если вы отправляете почту с root@myapp.com, тогда ваши настройки будут правильными.
Так что-то вроде этого
;;in the myapp.com zone
@ IN TXT "v=spf1 ip4:69.XXX.XXX.XXX ~all" ;covers root@myapp.com
mail IN A 69.xxx.xxx.xxx
mail IN TXT "v=spf1 ip4:69.XXX.XXX.XXX ~all" ;covers root@mail.myapp.com