gomail

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Библиотека gomail для отправки Email на Go

gomail — это мощная и простая в использовании библиотека на Go (Golang) для отправки электронной почты. Она поддерживает HTML-письма, вложения, несколько получателей, SMTP-аутентификацию и шифрование TLS/SSL. Библиотека идеально подходит для разработчиков, которым нужно интегрировать почтовые уведомления, подтверждения регистрации или маркетинговые рассылки в свои Go-приложения.

Зачем нужна gomail?

Стандартная библиотека Go (net/smtp) предоставляет базовые возможности для отправки писем, но для реальных задач часто не хватает функциональности: сложно работать с HTML-шаблонами, вложениями, несколькими адресатами и современными требованиями к безопасности (STARTTLS, OAuth2). gomail решает эти проблемы, предлагая чистый API и гибкую конфигурацию.

Установка

Для установки gomail выполните команду:

go get github.com/go-mail/mail/v2

Основные функции

  • Отправка через SMTP с поддержкой TLS/SSL
  • Поддержка HTML и текстовых писем
  • Вложения файлов и встроенные изображения
  • Множественные получатели (To, Cc, Bcc)
  • Настраиваемые заголовки и кодировки
  • Поддержка OAuth2 (например, Gmail API)

Пример кода на Go

Ниже приведён простой пример отправки HTML-письма через SMTP-сервер Gmail:

package main

import (
	"crypto/tls"
	"fmt"
	"log"

	gomail "github.com/go-mail/mail/v2"
)

func main() {
	d := gomail.NewDialer("smtp.gmail.com", 587, "your_email@gmail.com", "your_app_password")
	d.TLSConfig = &tls.Config{InsecureSkipVerify: false}

	m := gomail.NewMessage()
	m.SetHeader("From", "your_email@gmail.com")
	m.SetHeader("To", "recipient@example.com")
	m.SetHeader("Subject", "Привет из Go!")
	m.SetBody("text/html", "<h1>Здравствуйте!</h1><p>Это тестовое письмо.</p>")
	m.Attach("/path/to/file.pdf")

	if err := d.DialAndSend(m); err != nil {
		log.Fatal(err)
	}
	fmt.Println("Письмо отправлено успешно!")
}

Когда использовать gomail

  • Когда нужно отправлять транзакционные письма (подтверждения, сброс пароля)
  • Для создания сервиса рассылок на Go
  • При необходимости вложений или сложной HTML-вёрстки
  • В корпоративных приложениях с требованиями к шифрованию

gomail — это надёжный выбор для большинства задач по отправке Email. Благодаря активной поддержке сообщества и регулярным обновлениям, библиотека остаётся актуальной даже для высоконагруженных проектов.

Рекомендаций