Při vytváření aplikací budete muset posílat e-maily pro různé účely, od upozornění po ověřování a mnoho dalších. Go poskytuje smtp a pošta balíčky ve své standardní knihovně pro odesílání e-mailů. V ekosystému Go je také mnoho e-mailových balíčků třetích stran.
Vestavěné poštovní balíčky činí odesílání e-mailů složitým úkolem. Pokud nejste vývojář aplikací na straně serveru, můžete najít smtp a pošta balíky, které se obtížně používají a konfigurují.
Jednou z populárních alternativ je Jordan Wright's e-mailem balíček, který abstrahuje složitost odesílání pošty. Přidává také funkce, které v něm nenajdete smtp a pošta balíčky.
Začínáme s e-mailovým balíčkem
The e-mailem package je lehká, robustní a flexibilní knihovna, oblíbená pro svou jednoduchost. Pomocí několika řádků kódu můžete vytvořit a odeslat e-mail s přílohami, obsahem HTML a dalšími. Balíček také podporuje pokročilé funkce, jako je zabezpečené připojení SMTP a více příjemců, což z něj činí všestranný nástroj pro vaše e-mailové potřeby.
E-mailový balíček také podporuje pole CC a BCC, e-mailové adresy v různých formátech, potvrzení o přečtení a vlastní záhlaví.
Vzhledem k tomu, že balíček není zabudován do standardní knihovny Go, budete jej muset nainstalovat pomocí jít dostat příkaz. E-mailový balíček podporuje Go verze 1.15 a vyšší.
Spuštěním tohoto příkazu nainstalujte balíček do závislostí vašeho projektu po inicializaci nového projektu.
jít získejte github.com/jordan-wright/email
Jakmile e-mailový balíček nainstalujete, můžete jej importovat zadáním umístění vzhledem k vaší instalační cestě:
import (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Budete používat fmt balíček pro tisk výstupu do konzole a smtp balíček pro účely ověření.
Odesílání e-mailů s e-mailovým balíčkem
Budete muset deklarovat proměnné pro ukládání dat pro vaši poštu. Deklarujte proměnné pro svůj e-mail a heslo.
mail := "tvůj e-mail"
heslo := "heslo vaší aplikace"
Heslo můžete zakódovat napevno nebo použijte soubor proměnné prostředí pro lepší zabezpečení.
The pošta a Heslo proměnné by měly obsahovat váš e-mail a heslo.
Budete muset deklarovat proměnné pro adresu hostitele a číslo portu pro poštu. Zde je adresa hostitele a číslo portu pro poštu Yahoo:
hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"
Budete také muset vytvořit novou instanci e-mailu, abyste mohli odesílat e-maily pomocí e-mailem balík. Můžete použít metodu NewEmail e-mailem balíček pro inicializaci e-mailové instance pro vaši poštu:
newEmail := email. Nový Email()
The Nový Email metoda vrací instanci struktury, kterou můžete upravit pro prvky vašeho e-mailu.
Můžete použít Z a Na pole struktury pro přidání e-mailů odesílatele a příjemce do vaší e-mailové instance.
Nový Email. Od = mail
Nový Email. Komu = []tětiva{"seznam příjemců"}
The Na pole je část řetězců s neomezenou kapacitou, kterou můžete použít k deklaraci všech adres příjemců.
Můžeš přidat CC a BCC pole vašeho e-mailu pomocí Bcc a Kopie pole instance struct:
Nový Email. Skrytá kopie = []tětiva{"seznam skrytá kopie"}
Nový Email. kopie = []tětiva{"seznam kopií"}
Pro obsah e-mailu můžete přidat předmět a textový obsah vašeho e-mailu pomocí Předmět a Text pole struktury. Předmět je pole řetězce a obsah textu je bajtový řez.
Nový Email. Předmět = "Předmět e-mailu"
Nový Email. Text = []byte("Tělo vašeho emailu")
Po přidání všech požadovaných polí můžete odeslat e-mail pomocí Poslat metoda vaší instance e-mailu. The Poslat metoda přijímá adresu hostitele, číslo portu hostitele a instanci smtp balíčky PlainAuth.
err := nový e-mail. Poslat(
fmt. Sprintf("%s:%s", hostAddress, hostPort),
smtp. PlainAuth("", mail, heslo, hostAddress)
)
-li chyba!= nula {
fmt. Println("Při odesílání pošty došlo k chybě")
} jiný {
fmt. Println("E-mail byl úspěšně odeslán")
}
The Poslat metoda vrátí chybu, kterou můžete zvládnout nebo nula pokud nejsou žádné chyby.
Úspěšně jste odeslali e-mail s e-mailem balíček s méně řádky, než do kterého byste museli psát poslat e-mail s smtp balík.
Poštu můžete odesílat pomocí vestavěného balíčku SMTP
Go je dobře naplánovaný jazyk, protože jeho standardní knihovna se dodává s většinou funkcí, které budete potřebovat k vytvoření kompletních webových aplikací bez externích závislostí nebo balíčků třetích stran.
The smtp balíček se hodí pro odesílání e-mailů prostřednictvím různých služeb s podobnými funkcemi jako e-mailem balík.