Для отправки письма с использованием Golang мы можем воспользоваться стандартной библиотекой net/smtp. Следуя нижеуказанным шагам, вы сможете легко отправлять письма из своей программы на языке Golang.
1. Импортирование необходимых пакетов:
import ( "net/smtp" "strings" )
2. Определение функции отправки письма:
func sendEmail(senderEmail string, senderPassword string, recipientEmail string, subject string, body string) error { // Установление соединения с сервером SMTP auth := smtp.PlainAuth("", senderEmail, senderPassword, "smtp.gmail.com") // Формирование заголовков письма headers := make(map[string]string) headers["From"] = senderEmail headers["To"] = recipientEmail headers["Subject"] = subject var message string for key, value := range headers { message += fmt.Sprintf("%s: %srn", key, value) } message += "rn" + body // Отправка письма err := smtp.SendMail("smtp.gmail.com:587", auth, senderEmail, []string{recipientEmail}, []byte(message)) if err != nil { return err } return nil }
3. Вызов функции отправки письма:
func main() { senderEmail := "[email protected]" senderPassword := "password" recipientEmail := "[email protected]" subject := "Тестовое письмо" body := "Привет, это тестовое письмо." err := sendEmail(senderEmail, senderPassword, recipientEmail, subject, body) if err != nil { fmt.Println("Ошибка отправки письма:", err) } else { fmt.Println("Письмо успешно отправлено!") } }
Обратите внимание, что пример выше использует сервер SMTP Gmail ("smtp.gmail.com") и требует ввода учетных данных отправителя (адрес электронной почты и пароль). Пожалуйста, замените их соответствующими учетными данными почтового сервера, который вы хотите использовать.
Надеюсь, этот подробный ответ помог вам понять, как отправлять письма с помощью Golang с использованием библиотеки net/smtp. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!