Назад | Перейти на главную страницу

Mandrill, AWS, Namecheap, ошибка отсутствия домена SPF

Я пытаюсь настроить отправляющий домен на 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.

https://aws.amazon.com/about-aws/whats-new/2016/01/aws-elastic-beanstalk-adds-support-for-amazon-route-53-aliasing/

Я решил проблему и смог подтвердить свой домен отправки в Mandrill.

Я сказал namecheap использовать серверы имен AWS, затем на AWS Route53 я установил запись A, указывающую на экземпляр AWS EB, а затем добавил записи TXT, необходимые для проверки домена Mandrill непосредственно в AWS.

Надеюсь, это поможет другим с той же проблемой.