我们正在尝试通过Mailgun API和PHP发送消息。邮件显示在app.mailgun.com日志上很好,但未传递。日志显示以下状态:
"delivery-status": {
"attempt-no": 3,
"description": "No MX for domain.tld'",
"session-seconds": 0,
"retry-seconds": 1800,
"code": 498,
"message": "No MX for domain.tld'"
},
通过
dig
确认,domain.tld使用Google的邮件服务器,即。domain.tld. 900 IN MX 0 ASPMX.L.GOOGLE.COM.
domain.tld. 900 IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
domain.tld. 900 IN MX 10 ASPMX2.GOOGLEMAIL.COM.
domain.tld. 900 IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
domain.tld. 900 IN MX 10 ASPMX3.GOOGLEMAIL.COM.
对于domain.tld的两个名称服务器,结果相同。另外,通过例如mxtoolbox.com工具。
我们尝试将邮件发送到anotherdomain.tld,该邮件也具有已知且有效的(非Google)MX记录,完全相同的498错误。
此外,我们尝试发送到gmail.com地址,但是:
"delivery-status": {
"attempt-no": 1,
"description": "No MX for gmail.com'",
"session-seconds": 0,
"retry-seconds": 600,
"code": 498,
"message": "No MX for gmail.com'"
},
配置的发送域是domain.tld的子域,已经过验证并且帐户已升级。 subdomain.domain.tld具有Mailgun的MX记录集。
我尝试搜索他们的文档中对
498
或no mx for
的引用,但是我发现的只是示例而没有解释:https://documentation.mailgun.com/api-events.html#examples错误消息是什么意思?我能做什么?我拥有对domain.tld的DNS和subdomain.domain.tld的Mailgun帐户的完全访问权限。
最佳答案
好吧,这是一个令人尴尬的错字。该错误消息很好,但是应该更仔细地检查它:
"delivery-status": {
"attempt-no": 1,
"description": "No MX for gmail.com'",
"session-seconds": 0,
"retry-seconds": 600,
"code": 498,
"message": "No MX for gmail.com'"
},
它查找MX的域是
gmail.com'
而不是gmail.com
,这是错误消息明确指出的。错误出在电子邮件生成代码中,该代码在地址中添加了额外的单引号,而Mailgun或DNS则没有问题。