Я пытаюсь отправить html-адрес электронной почты с помощью gmail API, но по некоторым причинам он случайно отправляет электронное письмо как обычный/текстовый. Похоже, Google изменяет заголовок типа контента, который я установил. Есть ли причина для этого? Содержимое электронной почты точно такое же все время (как я его тестирую). Является ли API еще экспериментальным? Иногда, когда он работает, он также добавляет Content-Type: multipart/alternative;
(хотя я никогда не устанавливал его).Почему gmail API отправляет html-письма в виде обычного текста?
Процесс кодирования выглядит, как показано ниже. Код - 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()
Вопрос аналогичен http://stackoverflow.com/questions/26841905/sending-email-multipart-signed-rfc-3156-via-gmail-apis – SGC