Golang: Как использовать UTF8 как в заголовке, так и в теле письма? - PullRequest
0 голосов
/ 10 июля 2020

Меня интересует, как передать в эту функцию строку (успешно - в UTF8), содержащую как заголовок темы, так и тело сообщения электронной почты:

func sendEmail(body string) {
    c, err := smtp.Dial(".....")

    if err != nil {
        log.Fatal(err)
    }

    defer c.Close()
    // Set the sender and recipient.
    c.Mail(".....")
    c.Rcpt(".....")

    // Send the email body.
    wc, err := c.Data()
    if err != nil {
        log.Fatal(err)
    }

    defer wc.Close()

    buf := bytes.NewBufferString(body)
    if _, err = buf.WriteTo(wc); err != nil {
        log.Fatal(err)
    }

}

И затем у меня есть заголовок темы и электронное письмо body;

body := "Subject: Header string which contains ŽČĆŠĐ in name of user " + name + "!\n" 
body += "Content-Type: text/html; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: base64\r\n" 
body += "String inside email body which also might contain ŽČĆŠĐ" + year_month_day_hour_minute + " - " + end_of_shift

//function call
sendEmail(body)

Я думал, что он должен работать нормально ... и он действительно правильно отображает строку заголовка темы (в utf8), но по какой-то неизвестной причине остальная часть тела письма отображается в форме нежелательной почты .

формат нежелательной почты основного текста

Я попытался изменить несколько мелких деталей, но в принципе ничего не изменилось.

Это мой первый пример Go, поэтому я легко могу упустить из виду очевидное.

Спасибо за любые мысли по этому поводу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...