Mandrill,AWS,Namecheap,SPF缺less域错误

我正在尝试在Mandrill上设置一个发送域名,但是我得到一个SPF丢失的错误。

我的APP在AWS上运行,我正在使用EC2和Elastic Beanstalk,而我的域名在Namecheap上。

DNS设置如下:

CNAMElogging@'my-instance-id'.elasticbeanstalk.com。

TXTlogging@ v = spf1包括:spf.mandrillapp.com?all

TXTlogging@ v = DKIM1; K = RSA; P = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrLHiExVd55zd / IQ / J / mRwSRMAocV / hMB3jXwaHH36d9NaVynQFYV8NaWi69c1veUtRzGt7yAioXqLj7Z4TeEUoOLgrKsn8YnckGs9i3B3tVFB + CH / 4mPhXWiNfNdynHWBcPcbJ8kjEQ2U8y78dHZj1YeRXXVvWob2OaKynO8 / lQIDAQAB;

URLredirectloggingwww https://myapp.com永久(301)

今天早上我能够validationSPF地址,并且在使用CNAME条目更新我的DNS(实际上我只是将我的应用程序移动到AWS)后,我开始有SPF丢失错误。

任何想法如何我可以解决这个问题? 谢谢!

编辑

Mandrill支持的答案是:

感谢您写入。看起来您的“myapp.com”域名是“myapp.eu-central-1.elasticbeanstalk.com”的CNAME。 这可能会使事情变得棘手,因为在DNS中,您不能有两个具有相同名称的logging(一个TXTtypes和一个CNAMEtypes)。 因此,您将无法为“myapp.com”设置SPF。 此外,通过CNAMEredirect的方式,理论上可以在redirect导致的最终目的地build立SPFlogging,但不幸的是,Mandrill的SPF和DKIMvalidation器过于具体,因此无法validationDNSloggingCNAME到另一个域的域。 鉴于这些限制,唯一真正的select是将您的“myapp.com”从CNAME更改为直接指向该CNAME链末端的IP地址的Alogging。 然后,您应该能够为此域设置SPF。

其实我不知道我有这样的IP可以指向..你didyou解决类似的问题? 谢谢

CNAME不能有其他logging。 对TXT(或其他任何类似MX,A等)logging的请求将在CNAME并接收my-instance-id.elasticbeanstalk.com.TXTlogging(如果有的话)。

build议使用Route53的ALIASloggingtypes而不是CNAMEALIAS看起来像是一个普通的Alogging,但会自动将IP地址更改反映到Elastic Beanstalk实例。

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

我解决了这个问题,并且能够validation我在Mandrill中发送的域名。

我告诉namecheap使用AWS名称服务器,然后在AWS Route53上设置A Record以指向AWS EB实例,然后直接在AWS中添加Mandrill域validation所需的TXTlogging。

希望这可以帮助其他同样的问题。