Прямо сейчас я отправляю электронные письма с помощью функции php mail (). Я устанавливаю From:
заголовок на адрес, соответствующий имени хоста, а также обратный DNS-сервер, отправляющий электронное письмо, например:
$header = 'From: Foo <www-data@my-hostname-and-reverse-dns.com>' . "\r\n" .
'Reply-To: bar@mydomain-but-not-my-hostname.com' ;
$x = mail($to,$subject,$body,$header);
Это прекрасно работает, поэтому все письма проходят через всех проверенных мной провайдеров.
Имя хоста - это что-то длинное и общее от моего провайдера, который предоставляет корневой сервер.
Я знаю, что у меня может быть заголовок From:, соответствующий моему домену, если я изменю имя хоста (системное или в sendmail) и соответствующим образом настрою обратный DNS.
Однако имя хоста того же домена, на котором работает веб-сайт, может вызвать проблемы в apache (например, доставка виртуального хоста по умолчанию, а не конкретного домена).
Я знаю, что со всем этим можно справиться, однако я бы не хотел, чтобы мне приходилось управлять почтовым сервером и т. Д., А также думать об использовании Amazon Simple Email Service
Я настроил его и все такое, но электронные письма продолжают отмечаться Gmail как спам.
Я был удивлен, потому что обратная политика dns и spf соответствует адресам конверта. Однако gmail кажется особенно строгим при обходе заголовка From :.
Итак, я добавил записи SPF и SenderID в свой DNS.
(Я прочитал об этом и добавил их с помощью мастера, насколько я понимаю, они должны быть правильными. Маби, у меня здесь ошибка?)
Это пример электронного письма, отправленного Amazon.
И это результат dig -t txt mydomain.com
;; ANSWER SECTION:
mydomain.com. 1800 IN TXT "spf2.0/pra include:amazonses.com include:_spf.google.com ip4:1.2.3.4 ?all"
mydomain.com. 1800 IN TXT "v=spf1 include:amazonses.com include:_spf.google.com ip4:1.2.3.4 ?all"
Я уже разрешил несколько писем для распространения изменений, но Gmail по-прежнему отмечает мои письма как спам.
Итак, подведем итоги:
TLD From: -header не соответствует домену конверта, но домен конверта действительно соответствует обратному DNS и имени хоста отправляющего сервера (это все Amazon).
Установлены записи SPF и SenderId, соответствующие заголовку From :.
Gmail продолжает отмечать почту как спам.
Может кто-то указать мне верное направление?
Записи SPF - не единственный фактор, который используется при определении того, что сообщение является спамом. Gmail, например, смотрит на DomainKeys / DKIM. Видеть http://mailchimp.com/about/authentication/ для получения дополнительной информации о различных почтовых сервисах и различных методах аутентификации, которые они используют.
Глядя на заголовки в вашем письме, SPF прошел нормально.
Так что вы можете посмотреть на реализацию DomainKeys / DKIM для своих писем. В Gmail в деталях заголовка будет отображаться строка «Кем подписано».
В дополнение к этому, содержание электронного письма также будет иметь влияние. Неважно, считает ли Gmail, что это подлинное электронное письмо, оно все равно может пометить ваше письмо как спам на основе отзывов пользователей, содержания и других факторов.
Ну, я не знаю ни о ком другом, но SES Amazon мой спам фильтрует как постоянный и надежный источник спама, и служба не делает ничего, чтобы помочь мне определить, какие пользователи службы являются законными, а какие нет. Я не говорю, что именно поэтому Gmail называет вещи своими именами, но, вероятно, это не помогает.
Я обнаружил, что вся электронная почта, исходящая из диапазонов IP-адресов Amazon EC2, рассматривается большинством получателей как спам, даже при использовании обратного DNS и других настроек защиты от спама. Из-за этого я ретранслирую через внешние серверы что-нибудь важное. Это серьезный недостаток AWS.