Для отправки письма по электронной почте с использованием Go вам понадобится использовать библиотеку net/smtp, которая входит в стандартную библиотеку Go.
Вот пример кода, который позволяет отправить письмо на почту с использованием SMTP-сервера:
package main import ( "log" "net/smtp" ) func main() { // Информация о SMTP-сервере smtpServer := "smtp.example.com" smtpPort := "587" smtpUsername := "your_username" smtpPassword := "your_password" // Настройки авторизации auth := smtp.PlainAuth("", smtpUsername, smtpPassword, smtpServer) // Формирование письма from := "[email protected]" to := []string{"[email protected]"} subject := "Тестовое письмо" message := "Привет, это тестовое письмо." // Соединение с сервером SMTP smtpAddress := smtpServer + ":" + smtpPort smtpClient, err := smtp.Dial(smtpAddress) if err != nil { log.Fatal(err) } // Авторизация на сервере SMTP if err := smtpClient.Auth(auth); err != nil { log.Fatal(err) } // Установка отправителя и получателя письма if err := smtpClient.Mail(from); err != nil { log.Fatal(err) } for _, recipient := range to { if err := smtpClient.Rcpt(recipient); err != nil { log.Fatal(err) } } // Передача тела письма data, err := smtpClient.Data() if err != nil { log.Fatal(err) } defer data.Close() // Заголовки письма headers := make(map[string]string) headers["From"] = from headers["To"] = to[0] // В данном примере только один получатель headers["Subject"] = subject // Формирование заголовков письма var messageBody string for key, value := range headers { messageBody += key + ": " + value + "rn" } // Добавление тела письма messageBody += "rn" + message // Запись письма в поток данных _, err = data.Write([]byte(messageBody)) if err != nil { log.Fatal(err) } // Отправка письма err = smtpClient.Quit() if err != nil { log.Fatal(err) } log.Println("Письмо успешно отправлено.") }
В представленном коде используется простой пример отправки письма. Вы должны указать реальные данные SMTP-сервера (smtpServer), порта (smtpPort), учетные данные пользователя (smtpUsername и smtpPassword), отправителя (from), получателя (to) и другие детали письма (subject и message). После запуска кода письмо будет отправлено на указанный адрес электронной почты.