Я пытаюсь настроить отправляющий домен на Mandrill, но получаю ошибку отсутствия SPF.
Мое приложение работает на AWS, я использую EC2 и Elastic Beanstalk, а мой домен находится на Namecheap.
DNS настроен следующим образом:
Запись CNAME @ 'my-instance-id'.elasticbeanstalk.com.
Запись TXT @ v = spf1 включает: spf.mandrillapp.com? Все
Запись TXT @ v = DKIM1; k = rsa; р = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrLHiExVd55zd / IQ / Дж / mRwSRMAocV / hMB3jXwaHH36d9NaVynQFYV8NaWi69c1veUtRzGt7yAioXqLj7Z4TeEUoOLgrKsn8YnckGs9i3B3tVFB + Ch / 4mPhXWiNfNdynHWBcPcbJ8kjEQ2U8y78dHZj1YeRXXVvWob2OaKynO8 / lQIDAQAB;
Запись перенаправления URL-адреса www https://myapp.com Навсегда (301)
Сегодня утром я смог проверить адрес SPF, и у меня появилась ошибка отсутствия SPF после обновления моего DNS с помощью записи CNAME (на самом деле я только что переместил свое приложение на AWS).
Есть идеи, как я могу это исправить? Спасибо!
Ответ от поддержки Mandrill:
Спасибо за письмо. Похоже, ваш домен myapp.com является CNAME для myapp.eu-central-1.elasticbeanstalk.com. Это может усложнить задачу, поскольку в DNS у вас не может быть двух записей (типа TXT и типа CNAME) с одним и тем же именем. В результате вы не сможете настроить SPF для myapp.com. Кроме того, с помощью способа перенаправления CNAME теоретически можно было бы настроить записи SPF в конечном пункте назначения, к которому ведут эти перенаправления, но, к сожалению, валидатор SPF и DKIM от Mandrill слишком специфичен и поэтому не может проверять DNS. записи для доменов, которые связаны CNAME с другим доменом. Учитывая эти ограничения, единственный реальный вариант - изменить ваш «myapp.com» с CNAME на A-запись, указывающую непосредственно на IP-адрес в конце этой цепочки CNAME. После этого вы сможете настроить SPF для этого домена.
На самом деле я не уверен, что у меня есть такой IP-адрес, на который можно было бы указать ... Вы решили аналогичную проблему? Спасибо
А CNAME
не может быть рядом с другими записями. Запрос на запись TXT (или что-то еще, например MX, A и т. Д.) Будет следовать за CNAME
и получить my-instance-id.elasticbeanstalk.com.
с TXT
записи (если есть).
Использование Route53 ALIAS
тип записи вместо CNAME
это рекомендуемое решение. В ALIAS
похоже на нормальный A
запись во внешний мир, но автоматически отражает изменения IP-адреса в экземпляре Elastic Beanstalk.
Я решил проблему и смог подтвердить свой домен отправки в Mandrill.
Я сказал namecheap использовать серверы имен AWS, затем на AWS Route53 я установил запись A, указывающую на экземпляр AWS EB, а затем добавил записи TXT, необходимые для проверки домена Mandrill непосредственно в AWS.
Надеюсь, это поможет другим с той же проблемой.