已配置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
相关产品推荐
相关产品推荐

