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

我尝试搜索他们的文档中对498no 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则没有问题。

10-07 19:19
查看更多