You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku预发布子域名CNAME与Mailgun TXT记录冲突的解决咨询

解决预发布环境Mailgun DNS记录冲突问题

核心原因

DNS规则明确:同一主机名(比如staging)不能同时存在CNAME记录和其他类型记录(TXT、MX等),这就是你遇到冲突的直接原因。

可行解决方案

  • 方案1:用子域名的子域名配置Mailgun(推荐)
    不要直接用staging.tomato.com作为Mailgun发信域名,而是新增一个细分的子域名(比如mg.staging.tomato.com):

    1. 在Mailgun后台将发信域名设置为mg.staging.tomato.com
    2. 在Godaddy添加对应DNS记录:
      • 类型CNAME,名称填mg.staging,指向Mailgun提供的CNAME目标地址
      • 类型TXT,名称填mg.staging,内容为v=spf1 include:mailgun.org ~all
      • 类型TXT,名称填Mailgun提供的DKIM前缀(比如k1._domainkey.mg.staging),内容为对应的DKIM字符串
    3. 在预发布Heroku应用的Mailgun插件配置中,把发信域名改成mg.staging.tomato.com
  • 方案2:合并SPF到根域名(仅满足SPF需求)
    如果不想新增子域名,可以修改根域名tomato.com的SPF记录,把预发布的Mailgun规则包含进去,修改后的根SPF内容为:

    v=spf1 include:mailgun.org ~all
    

    但这个方法只能解决SPF验证,DKIM还是需要单独的子域名记录,所以不推荐单独使用。

  • 方案3:替换CNAME为A记录(仅适用于有固定IP的Heroku套餐)
    若你的Heroku套餐支持固定出站IP,可以把staging.tomato.com的CNAME记录换成A记录,指向Heroku提供的固定IP。这样就能给staging主机名添加TXT记录了,但注意大部分Heroku基础套餐没有固定IP,适用性有限。

验证方式

配置完成后,用dig命令检查记录是否生效:

dig TXT mg.staging.tomato.com
dig CNAME mg.staging.tomato.com

内容的提问来源于stack exchange,提问作者elements

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:35:06