我们正在尝试使用PHP通过Mailgun API发送消息。消息显示在app.mailgun.com日志中就好了,但它们没有发送。 Log提供以下状态:
"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,它也已知道&工作(非谷歌)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帐户。
答案 0 :(得分:4)
"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没有任何问题。