Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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.

instagram viewer

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.