Alkalmazások készítése során különféle célokra kell e-maileket küldenie, az értesítésektől a hitelesítésig, és még sok más célból. Go biztosítja a smtp és levél csomagokat a szabványos könyvtárában e-mail küldéshez. Számos harmadik féltől származó e-mail csomag is található a Go ökoszisztémában.
A beépített levelezőcsomagok összetett feladattá teszik az e-mail küldést. Ha nem kiszolgálóoldali alkalmazásfejlesztő, akkor megtalálhatja a smtp és levél a csomagok használata és konfigurálása bonyolult.
Az egyik népszerű alternatíva a Jordan Wright's email csomag, amely absztrahálja a levélküldés bonyolultságát. Olyan funkciókat is hozzáad, amelyek nem találhatók meg a smtp és levél csomagokat.
Kezdő lépések az e-mail csomaggal
A email csomag egy könnyű, robusztus és rugalmas könyvtár, amely egyszerűsége miatt népszerű. Csak néhány sornyi kóddal létrehozhat és elküldhet egy e-mailt mellékletekkel, HTML-tartalommal stb. A csomag olyan fejlett funkciókat is támogat, mint például a biztonságos SMTP-kapcsolatok és a több címzett, így sokoldalú eszköz az e-mail igényeihez.
Az e-mail csomag támogatja a CC és BCC mezőket, az e-mail címeket többféle formátumban, az olvasási visszaigazolásokat és az egyéni fejléceket.
Mivel a csomag nincs beépítve a Go standard könyvtárába, telepítenie kell a szerezz parancs. Az e-mail csomag támogatja a Go 1.15-ös és újabb verzióit.
Futtassa ezt a parancsot a csomag telepítéséhez a projekt függőségeire egy új projekt inicializálása után.
megy töltse le a github.com/jordan-wright/email címet
Miután telepítette az e-mail csomagot, importálhatja azt a telepítési útvonalhoz viszonyított hely megadásával:
import (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Használni fogod a fmt csomagot a kimenet kinyomtatásához a konzolra és a smtp csomag hitelesítési célokra.
Levelek küldése e-mail csomaggal
Változókat kell deklarálnia a levelek adatainak tárolásához. Deklaráljon változókat e-mail címéhez és jelszavához.
mail := "az email címed"
jelszó := "az alkalmazás jelszava"
Hardkódolhatja a jelszót ill környezeti változófájlt használjon a nagyobb biztonság érdekében.
A levél és Jelszó a változóknak tartalmazniuk kell az e-mail-címét és jelszavát.
Deklarálnia kell a levél gazdagépcímének és portszámának változóit. Íme a Yahoo mail gazdagép címe és portszáma:
hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"
Létre kell hoznia egy új e-mail példányt is az e-mailek küldéséhez a email csomag. Használhatja a NewEmail metódust a email csomag egy e-mail példány inicializálásához a leveleihez:
newEmail := email. Új Email()
A Új Email metódus egy struct példányt ad vissza, amelyet módosíthat az e-mail elemeihez.
Használhatja a Tól től és Nak nek A feladó és a címzett e-mailek hozzáadásához az e-mail példányhoz.
új Email. Feladó = levél
új Email. Címzett = []húr{"címzettek listája"}
A Nak nek mező egy korlátlan kapacitású karakterlánc-szelet, amellyel deklarálhatja az összes címzett címét.
Hozzá lehet adni CC és BCC e-mailjei mezőiben a Titkos másolat és Cc a struct példány mezői:
új Email. Titkos másolat = []húr{"titkos másolatok listája"}
új Email. Cc = []húr{"cc list of cc"}
Az e-mail tartalmához hozzáadhatja az e-mail tárgyát és szöveges tartalmát a segítségével Tantárgy és Szöveg a struktúra mezői. A tárgy egy karakterlánc mező, a szövegtartalom pedig egy bájtszelet.
új Email. Tárgy = "Az e-mail tárgya"
új Email. Szöveg = []byte("Az e-mail szövege")
Miután az összes kötelező mezőt hozzáadta, elküldheti az e-mailt a Küld e-mail példányának módszere. A Küld metódus veszi a gazdagép címét, a gazdagép port számát és a smtp csomagok PlainAuth.
err := newEmail. Küld(
fmt. Sprintf("%s:%s", hostAddress, hostPort),
smtp. PlainAuth("", mail, jelszó, hostAddress)
)
ha hiba! = nulla {
fmt. Println("Hiba történt az e-mail küldésekor")
} más {
fmt. Println("A levél sikeresen elküldve")
}
A Küld metódus olyan hibát ad vissza, amelyet kezelhet vagy nulla ha nincsenek hibák.
Sikeresen elküldött egy e-mailt a következővel: email kevesebb sort tartalmaz, mint amennyire írnia kell küldjön egy e-mailt a smtp csomag.
Levelet küldhet a beépített SMTP-csomaggal
A Go egy jól megtervezett nyelv, mivel a szabványos könyvtára tartalmazza a legtöbb olyan funkciót, amelyre szüksége van egy komplett webalkalmazás létrehozásához külső függőségek vagy harmadik féltől származó csomagok nélkül.
A smtp csomag hasznos lehet e-mailek küldéséhez különböző szolgáltatásokon keresztül, amelyek hasonló funkciókkal rendelkeznek, mint a email csomag.