#go #google-api #gmail #gmail-api
#Вперед #google-api #gmail #gmail-api
Вопрос:
Я создал HTML-файл (т. Е. email.html ) который, наконец, послужил бы мне шаблоном тела моего электронного письма. Я попробовал следующий код, но тело моего электронного письма представляет собой обычный текст со всем html, который я написал в (email.html ).
Можете ли вы предложить, заглянув в код. Что происходит не так??
Примечание: Синтаксический анализ шаблона и выполнение работают нормально.
Код:
package main
import (
"encoding/base64"
"fmt"
"html/template"
)
func getMessageString(fromEmail, To, ReplyTo, CC, BCC, Subject, emailBody string) []byte {
return []byte("Reply-To: " ReplyTo "rn" "From: " fromEmail "rn" "To: " To "rn" "Cc: " CC "rn" "Bcc: " BCC "rn" "Subject: " Subject "rnrn" "MIME-Version: 1.0rn" "Content-Type: text/html; charset="utf-8"rn" emailBody "rnrn")
}
func main() {
t, tempErr := template.New("template.html").ParseFiles("template.html")
if tempErr != nil {
fmt.Println(tempErr.Error())
return
}
execErr := t.Execute(buf, data)
if execErr != nil {
fmt.Println(execErr.Error())
} else {
messageStr := getMessageString("xyz@gmail.com", "abc@ionosnetworks.com", "pqr@gmail.com", "", "", "Test Subject", buf.String())
var message gmail.Message
message.Raw = base64.URLEncoding.EncodeToString(messageStr)
_, err = svc.Users.Messages.Send("me", amp;message).Do()
if err != nil {
fmt.Println(err.Error())
}
}
}
Ответ №1:
Ошибка в getMessageString
функции:
"Subject: " Subject "rnrn"
Обратите внимание на двойную rn
последовательность, почтовый сервер анализирует все после double rn
как содержимое электронной почты. В вашем случае был пропущен Content-Type
заголовок. Итак, просто удалите один из них rn
, и результирующий код должен выглядеть следующим образом:
func getMessageString(fromEmail, To, ReplyTo, CC, BCC, Subject, emailBody string) []byte {
return []byte("Reply-To: " ReplyTo "rn" "From: " fromEmail "rn" "To: " To "rn" "Cc: " CC "rn" "Bcc: " BCC "rn" "Subject: " Subject "rn" "MIME-Version: 1.0rn" "Content-Type: text/html; charset="utf-8"rnrn" emailBody "rn")
}