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

已配置Mailgun退订头但Gmail UI未显示一键退订链接

Gmail一键退订链接不显示问题排查与解决建议

从2024年2月起,Google要求日发送量超5000封的邮件必须支持一键退订。我使用mailgun-js结合Node.js和Express向数据库用户批量发件,已手动添加一键退订所需头部:

'h:List-Unsubscribe': '<https://solarmora.com/unsubscribe/example>, <mailto:solarmora@unsubscribe.com>',
'h:List-Unsubscribe-Post': 'List-Unsubscribe=One-Click',

但Gmail界面未显示任何退订链接或选项——尽管邮件源码中能看到这些头部,且已正确配置并通过DMARC、SPF和DKIM验证。以下是我的发件代码片段:

sendEmail: function (emailAttribute, emailFrom, cb) {
    var api_key = config.mailConfig.mailgunApiKey;
    var domain = config.mailConfig.mailgunDomain;
    var mailEmail = emailFrom;
    var mailgun = require('mailgun-js')({apiKey: api_key, domain: domain});
    var templateHtml = emailAttribute.body_content;

    var data = {
        from: `<${mailEmail}>`,
        to: emailAttribute.to,
        subject: emailAttribute.subject,
        body: emailAttribute.body_content,
        'recipient-variables': emailAttribute.receipentsVar,
        html: templateHtml,
        'h:List-Unsubscribe': '<https://my-website/%recipient._id%/unsubscribe-test>, <mailto:my-website@unsubscribe.com>',
        'h:List-Unsubscribe-Post': 'List-Unsubscribe=One-Click',
    };
    mailgun.messages().send(data, cb);
}

解决建议

  • 验证头部格式与有效性
    确保List-Unsubscribe中的URL和mailto格式完全合规:链接必须用<>包裹,多个选项间逗号后加空格;测试时可替换%recipient._id%为固定有效链接,排除变量解析问题。同时确认List-Unsubscribe-Post值严格为List-Unsubscribe=One-Click,无多余字符。

  • 检查Mailgun头部传递情况
    查看Mailgun发送日志,确认实际发出的邮件头部与代码中设置的完全一致,排除平台拦截或修改头部的可能。可通过Mailgun测试工具发送单封邮件,直接查看最终邮件头部。

  • 排查Gmail显示触发条件
    Gmail的一键退订按钮会结合邮件发送频率、用户互动数据(如是否标记垃圾邮件、是否经常打开该域名邮件)判断是否显示。尝试发送给与该域名有稳定互动的测试账号,或提升邮件整体互动率后再观察。

  • 避免头部重复冲突
    检查邮件源码中是否存在多组List-Unsubscribe头部,若有需清理重复配置,确保只有一组符合要求的头部信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:08:43