Gmail API를 사용하여 html 이메일을 보내려고하지만 몇 가지 이유로 이메일을 일반/텍스트로 무작위로 보냅니다. 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