Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Pri vytváraní aplikácií budete musieť posielať e-maily na rôzne účely, od upozornení až po overenie a mnohé ďalšie. Go poskytuje smtp a pošty balíkov vo svojej štandardnej knižnici na odosielanie e-mailov. V ekosystéme Go je tiež veľa e-mailových balíkov tretích strán.

Vďaka vstavaným poštovým balíkom je odosielanie e-mailov komplexnou úlohou. Ak nie ste vývojár aplikácií na strane servera, možno nájdete smtp a pošty balíky, ktoré sa ťažko používajú a konfigurujú.

Jednou z populárnych alternatív je Jordan Wright's email balík, ktorý abstrahuje zložitosť odosielania pošty. Pridáva tiež funkcie, ktoré nenájdete v smtp a pošty balíkov.

Začíname s e-mailovým balíčkom

The email package je ľahká, robustná a flexibilná knižnica, obľúbená pre svoju jednoduchosť. Pomocou niekoľkých riadkov kódu môžete vytvoriť a odoslať e-mail s prílohami, obsahom HTML a podobne. Balík tiež podporuje pokročilé funkcie, ako sú zabezpečené pripojenia SMTP a viacerých príjemcov, čo z neho robí všestranný nástroj pre vaše e-mailové potreby.

E-mailový balík tiež podporuje polia CC a BCC, e-mailové adresy vo viacerých formátoch, potvrdenia o prečítaní a vlastné hlavičky.

Keďže balík nie je zabudovaný do štandardnej knižnice Go, budete ho musieť nainštalovať pomocou choď si príkaz. E-mailový balík podporuje Go verzie 1.15 a vyššie.

Spustite tento príkaz na inštaláciu balíka do závislostí vášho projektu po inicializácii nového projektu.

ísť získajte github.com/jordan-wright/email

Po nainštalovaní e-mailového balíka ho môžete importovať zadaním umiestnenia relatívneho k vašej inštalačnej ceste:

importovať (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)

Budete používať fmt balík na tlač výstupu do konzoly a smtp balík na účely autentifikácie.

Odosielanie pošty s e-mailovým balíkom

Budete musieť deklarovať premenné na ukladanie údajov pre vašu poštu. Deklarujte premenné pre svoj e-mail a heslo.

mail := "tvoj email"
heslo := "heslo vašej aplikácie"

Heslo môžete zakódovať napevno alebo použite súbor premenných prostredia pre lepšiu bezpečnosť.

The pošty a heslo premenné by mali obsahovať váš email a heslo, resp.

Budete musieť deklarovať premenné pre adresu hostiteľa a číslo portu pre poštu. Tu je adresa hostiteľa a číslo portu pre poštu Yahoo:

hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"

Budete tiež musieť vytvoriť novú inštanciu e-mailu na odosielanie e-mailov pomocou email balík. Môžete použiť metódu NewEmail email balík na inicializáciu e-mailovej inštancie pre vašu poštu:

newEmail := email. Nový email()

The Nový email metóda vráti inštanciu štruktúry, ktorú môžete upraviť pre prvky vášho e-mailu.

Môžete použiť Od a Komu polia štruktúry na pridanie e-mailov odosielateľa a príjemcu do vašej e-mailovej inštancie.

nový email. Od = mail
nový email. Komu = []reťazec{"zoznam príjemcov"}

The Komu pole je časť reťazcov s neobmedzenou kapacitou, ktorú môžete použiť na deklarovanie všetkých adries príjemcov.

Môžete pridať CC a BCC poliach vášho e-mailu pomocou Bcc a Kópia polia inštancie struct:

nový email. Skrytá kópia = []reťazec{"zoznam skrytej kópie"}
nový email. Kópia = []reťazec{"zoznam kópií"}

Pre obsah e-mailu môžete pridať predmet a textový obsah e-mailu pomocou Predmet a Text polia štruktúry. Predmet je pole reťazca a obsah textu je bajtový výsek.

nový email. Predmet = "Predmet e-mailu"
nový email. Text = []byte("Text tvojho emailu")

Po pridaní všetkých povinných polí môžete e-mail odoslať pomocou Odoslať metóda vašej e-mailovej inštancie. The Odoslať metóda preberá adresu hostiteľa, číslo portu hostiteľa a inštanciu smtp balíkov PlainAuth.

chyba := nový e-mail. Odoslať(
fmt. Sprintf("%s:%s", hostAddress, hostPort),
smtp. PlainAuth("", mail, heslo, hostAddress)
)

ak chyba!= nula {
fmt. Println("Pri odosielaní pošty sa vyskytla chyba")
} inak {
fmt. Println("E-mail bol úspešne odoslaný")
}

The Odoslať metóda vráti chybu, ktorú môžete zvládnuť alebo nula ak nie sú žiadne chyby.

Úspešne ste odoslali e-mail s email balík s menším počtom riadkov, ako by ste museli napísať poslať mail s smtp balík.

Poštu môžete odosielať pomocou vstavaného balíka SMTP

Go je dobre naplánovaný jazyk, pretože jeho štandardná knižnica sa dodáva s väčšinou funkcií, ktoré budete potrebovať na vytvorenie kompletných webových aplikácií bez externých závislostí alebo balíkov tretích strán.

The smtp Balík sa hodí na odosielanie e-mailov cez rôzne služby s podobnými funkciami ako email balík.