为什么Mailgun会返回错误498"没有为域"找到MX,当dig&在线服务查找记录?

时间:2017-06-06 13:27:47

标签: dns mailgun

我们正在尝试使用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记录集。

我尝试在他们的文档中搜索对498no mx for的引用,但我找到的只是没有解释的示例:https://documentation.mailgun.com/api-events.html#examples

错误消息是什么意思?我能做什么?我可以完全访问domain.tld的DNS和subdomain.domain.tld的Mailgun帐户。

1 个答案:

答案 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没有任何问题。