Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpMlSb 271 of 280 menu
◀ ▶

Тема письма в Go

Тема для получателя это отдельная строка в блоке заголовков сообщения. Она стоит рядом с адресами отправителя и получателя и отделяется от тела пустой строкой, как и остальные служебные поля.

Строка заголовка пишется в форме "Subject: ...\r\n". После темы идет еще одна пустая строка "\r\n", и только затем видимый текст письма.

Отправим письмо с понятной темой на локальный порт:

package main import ( "fmt" "log" "net/smtp" ) func main() { addr := "127.0.0.1:1025" from := "news@example.com" to := []string{"reader@example.com"} subject := "weekly digest" msg := []byte( "From: news@example.com\r\n" + "To: reader@example.com\r\n" + "Subject: " + subject + "\r\n" + "\r\n" + "three items this week", ) err := smtp.SendMail(addr, nil, from, to, msg) if err != nil { log.Fatal(err) } fmt.Println("sent") }

Переменная с темой удобна, когда строку берут из настроек или формируют по шаблону. В приемнике тема показывается отдельно от тела, потому что сервер читает заголовки до пустой строки.

Тема может быть короче тела и не повторять его текст:

package main import ( "fmt" "log" "net/smtp" ) func main() { addr := "127.0.0.1:1025" from := "alert@example.com" to := []string{"ops@example.com"} msg := []byte( "From: alert@example.com\r\n" + "To: ops@example.com\r\n" + "Subject: check logs\r\n" + "\r\n" + "disk usage above limit", ) err := smtp.SendMail(addr, nil, from, to, msg) if err != nil { log.Fatal(err) } fmt.Println("sent") }

Дан текст темы:

title := "invoice ready"

Вставьте title в заголовок темы, добавьте From и To для "billing@example.com" и "pay@example.com", телом сделайте "amount 10" и отправьте на "127.0.0.1:1025".

Дано сообщение без строки темы:

raw := "From: a@example.com\r\n" + "To: b@example.com\r\n" + "\r\n" + "body only"

Скажите, чего не хватает в raw для привычного отображения темы у получателя.

Дана тема "test" и тело "sample". Опишите порядок строк в срезе байтов от первого заголовка до текста тела.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить