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.