Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Докато създавате приложения, ще трябва да изпращате имейли за различни цели, от известия до удостоверяване и много други. Go осигурява smtp и поща пакети в стандартната си библиотека за изпращане на имейл. В екосистемата Go има и много имейл пакети на трети страни.

Вградените пощенски пакети правят изпращането на имейл сложна задача. Ако не сте разработчик на приложения от страна на сървъра, може да намерите smtp и поща пакети, трудни за използване и конфигуриране.

Една популярна алтернатива е тази на Джордан Райт електронна поща пакет, който абстрахира сложността на изпращането на поща. Той също така добавя функции, които няма да намерите в smtp и поща пакети.

Първи стъпки с имейл пакета

The електронна поща package е лека, здрава и гъвкава библиотека, популярна със своята простота. Само с няколко реда код можете да създадете и изпратите имейл с прикачени файлове, HTML съдържание и др. Пакетът също така поддържа разширени функции като сигурни SMTP връзки и множество получатели, което го прави универсален инструмент за вашите имейл нужди.

instagram viewer

Пакетът за имейл също поддържа полета CC и BCC, имейл адреси в множество формати, разписки за четене и персонализирани заглавки.

Тъй като пакетът не е вграден в стандартната библиотека Go, ще трябва да го инсталирате с иди вземи команда. Имейл пакетът поддържа Go версии 1.15 и по-нови.

Изпълнете тази команда, за да инсталирате пакета към зависимостите на вашия проект след инициализиране на нов проект.

отивам вземете github.com/jordan-wright/email

След като инсталирате имейл пакета, можете да го импортирате, като посочите местоположението спрямо инсталационния път:

импортиране (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)

Ще използвате fmt пакет за отпечатване на изход към конзолата и smtp пакет за целите на удостоверяване.

Изпращане на имейли с имейл пакета

Ще трябва да декларирате променливи, за да съхранявате данните за вашата поща. Декларирайте променливи за вашия имейл и парола.

поща := "твоят имейл"
парола := "вашата парола за приложение"

Можете да кодирате твърдо паролата или използвайте файл с променлива на средата за подобрена сигурност.

The поща и парола променливите трябва да съдържат съответно вашия имейл и парола.

Ще трябва да декларирате променливи за адреса на хоста и номера на порта за пощата. Ето адреса на хоста и номера на порта за Yahoo mail:

хост адрес := "smtp.mail.yahoo.com"
hostPort := "465"

Ще трябва също да създадете нов имейл екземпляр, за да изпращате имейли с електронна поща пакет. Можете да използвате метода NewEmail на електронна поща пакет за инициализиране на имейл екземпляр за вашата поща:

нов имейл := имейл. Нов имейл()

The Нов имейл метод връща екземпляр на структура, който можете да модифицирате за елементите на вашия имейл.

Можете да използвате от и Да се полета на структурата, за да добавите имейлите на изпращача и получателя към вашия имейл екземпляр.

нов имейл. От = поща
нов имейл. До = []низ{"списък с получатели"}

The Да се е част от низове с неограничен капацитет, които можете да използвате, за да декларирате всичките си адреси на получатели.

Можете да добавите CC и BCC полета на вашия имейл, като използвате Ск и Cc полета на екземпляра на структурата:

нов имейл. Ск = []низ{"списък на скрито копие"}
нов имейл. Як = []низ{"списък на cc"}

За съдържанието на имейла можете да добавите темата и текстовото съдържание на вашия имейл, като използвате Предмет и Текст полета на структурата. Темата е низово поле, а текстовото съдържание е байтов отрязък.

нов имейл. Тема = „Тема на имейла“
нов имейл. Текст = []байт(„Тяло на вашия имейл“)

След като добавите всички задължителни полета, можете да изпратите имейла, като използвате Изпратете метод на вашия имейл екземпляр. The Изпратете методът приема адреса на хоста, номера на порта на хоста и екземпляр на smtp пакети PlainAuth.

грешка := нов имейл. Изпрати(
fmt. Sprintf(„%s:%s“, hostAddress, hostPort),
smtp. PlainAuth("", поща, парола, адрес на хост)
)

ако грешка!= нула {
fmt. Println(„Възникна грешка при изпращане на имейла“)
} друго {
fmt. Println(„Пощата беше изпратена успешно“)
}

The Изпратете метод връща грешка, която можете да обработите или нула ако няма грешки.

Успешно изпратихте имейл с електронна поща пакет с по-малко редове, отколкото трябва да пишете изпратете имейл с smtp пакет.

Можете да изпращате поща с вградения SMTP пакет

Go е добре планиран език, тъй като неговата стандартна библиотека се доставя с повечето функционалности, от които ще се нуждаете, за да създадете цялостни уеб приложения без външни зависимости или пакети на трети страни.

The smtp Пакетът е удобен за изпращане на имейли през различни услуги с подобни функции на електронна поща пакет.