【发布时间】:2015-03-09 19:46:27
【问题描述】:
我正在尝试使用 gmail API 发送 html 电子邮件,但由于某些原因,它会随机以纯文本/文本形式发送电子邮件。谷歌似乎改变了我设置的内容类型标题。有什么理由吗?电子邮件内容始终完全相同(正如我测试的那样)。 API 是否仍处于试验阶段?
有时当它起作用时,它还会添加Content-Type: multipart/alternative;(尽管我从未设置它)。
编码过程如下所示。代码是 Go,但我想它是自我解释的,并且该过程与语言无关。
header := make(map[string]string)
header["From"] = em.From.String()
header["To"] = em.To.String()
// header["Subject"] = encodeRFC2047(em.Subject)
header["Subject"] = em.Subject
header["MIME-Version"] = "1.0"
header["Content-Type"] = "text/html; charset=\"utf-8\""
// header["Content-Transfer-Encoding"] = "base64"
header["Content-Transfer-Encoding"] = "quoted-printable"
var msg string
for k, v := range header {
msg += fmt.Sprintf("%s: %s\r\n", k, v)
}
msg += "\r\n" + em.Message
gmsg := gmail.Message{
Raw: encodeWeb64String([]byte(msg)),
}
_, err = gmailService.Users.Messages.Send("me", &gmsg).Do()
【问题讨论】: