Skip to content

电子邮件的 Subject 主题字段中文乱码

标签
开发/后端/SMTP
开发/语言/Golang
开发/后端/邮件
开发/后端/Email
编码/UTF-8
规范/RFC
计算机/网络/协议/邮件/Email
字数
217 字
阅读时间
2 分钟
文档版本
编辑者版本变更日期变更说明
Nekov1.0.02022-04-02创建

在 Golang 中我们可以使用下面的代码直接修复该问题:

go
// 组合拼接邮件内容
header := make(map[string]string)
header["Subject"] = "=?UTF-8?B?" + base64.StdEncoding.EncodeToString([]byte(subject)) + "?=" + "\n"

如果你更喜欢 fmt.Sprint 的使用方法,也可以用下面的这个:

go
// 组合拼接邮件内容
header := make(map[string]string)
header["Subject"] = fmt.Sprintf("=?UTF-8?B?%s?=\n", base64.StdEncoding.EncodeToString([]byte(subject)))

延伸阅读

encoding - Converting "=?UTF 8?.." (RFC 2047) to a regular string in golang - Stack Overflow

Non-ascii SUBJECT and FROM turns into " =?utf-8?b?" even when charset is set to iso-8859-2 · Issue #126 · mattupstate/flask-mail

encoding - MIME email Subject etc. headers vs. utf8: first split, then encode? - Stack Overflow

What the =?UTF-8?B?ZnVjayDwn5CO?=! – dmorgan.info

golang--解决邮件发送标题乱码问题 - 黑曼巴后仰 - 博客园

贡献者

页面历史

撰写