Dok izrađujete aplikacije, morat ćete slati e-poštu za različite svrhe, od obavijesti do provjere autentičnosti i još mnogo toga. Go pruža smtp i pošta pakete u svojoj standardnoj biblioteci za slanje e-pošte. U ekosustavu Go također postoji mnogo paketa e-pošte trećih strana.
Ugrađeni paketi e-pošte čine slanje e-pošte složenim zadatkom. Ako niste programer aplikacija na strani poslužitelja, možda ćete pronaći smtp i pošta paketi teški za korištenje i konfiguraciju.
Jedna popularna alternativa je Jordan Wright elektronička pošta paket koji apstrahira složenost slanja pošte. Također dodaje značajke koje nećete pronaći u smtp i pošta paketi.
Početak rada s paketom e-pošte
The elektronička pošta paket je lagana, robusna i fleksibilna biblioteka, popularna zbog svoje jednostavnosti. Sa samo nekoliko redaka koda možete izraditi i poslati e-poštu s privicima, HTML sadržajem i više. Paket također podržava napredne značajke kao što su sigurne SMTP veze i višestruki primatelji, što ga čini svestranim alatom za vaše potrebe e-pošte.
Paket e-pošte također podržava polja CC i BCC, adrese e-pošte u više formata, potvrde o čitanju i prilagođena zaglavlja.
Budući da paket nije ugrađen u standardnu biblioteku Go, morat ćete ga instalirati s idi po naredba. Paket e-pošte podržava Go verzije 1.15 i novije.
Pokrenite ovu naredbu da instalirate paket na ovisnosti vašeg projekta nakon pokretanja novog projekta.
ići dobiti github.com/jordan-wright/email
Nakon što ste instalirali paket e-pošte, možete ga uvesti tako da navedete lokaciju u odnosu na vaš instalacijski put:
uvoz (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Vi ćete koristiti fmt paket za ispis izlaza na konzolu i smtp paket za potrebe provjere autentičnosti.
Slanje pošte s paketom e-pošte
Morat ćete deklarirati varijable za pohranu podataka za svoju poštu. Deklarirajte varijable za svoju e-poštu i lozinku.
pošta := "tvoj email"
lozinka := "vaša zaporka aplikacije"
Možete kodirati lozinku ili koristiti datoteku varijable okruženja za poboljšanu sigurnost.
The pošta i lozinka varijable bi trebale sadržavati vašu e-poštu i lozinku.
Morat ćete deklarirati varijable za adresu glavnog računala i broj porta za poštu. Ovdje su adresa hosta i broj porta za Yahoo mail:
adresa hosta := "smtp.mail.yahoo.com"
hostPort := "465"
Također ćete morati stvoriti novu instancu e-pošte za slanje e-pošte s elektronička pošta paket. Možete koristiti NewEmail metodu elektronička pošta paket za pokretanje instance e-pošte za vašu poštu:
nova e-pošta := e-pošta. Novi e-mail()
The Novi e-mail metoda vraća instancu strukture koju možete modificirati za elemente svoje e-pošte.
Možete koristiti Iz i Do polja strukture za dodavanje e-poruka pošiljatelja i primatelja vašoj instanci e-pošte.
novi e-mail. Od = pošta
novi e-mail. Za = []niz{"popis primatelja"}
The Do polje je isječak nizova s neograničenim kapacitetom koji možete koristiti za deklariranje svih adresa primatelja.
Možete dodati CC i BCC polja vaše e-pošte pomoću Bcc i Kopija polja instance strukture:
novi e-mail. Bcc = []niz{"popis skrivenih kopija"}
novi e-mail. Cc = []niz{"popis cc"}
Za sadržaj e-pošte možete dodati predmet i tekstualni sadržaj svoje e-pošte koristeći Predmet i Tekst polja strukture. Predmet je polje niza, a sadržaj teksta je isječak bajta.
novi e-mail. Predmet = "Predmet e-pošte"
novi e-mail. Tekst = []bajt("Tijelo vaše e-pošte")
Nakon što ste dodali sva potrebna polja, možete poslati e-poštu pomoću Poslati metoda vaše instance e-pošte. The Poslati metoda uzima adresu glavnog računala, broj priključka glavnog računala i instancu smtp paketa PlainAuth.
pogreška := nova e-pošta. Poslati(
fmt. Sprintf("%s:%s", adresa hosta, port hosta),
smtp. PlainAuth("", pošta, lozinka, adresa hosta)
)
ako pogriješiti != nula {
fmt. Println("Došlo je do pogreške prilikom slanja pošte")
} drugo {
fmt. Println("Pošta je uspješno poslana")
}
The Poslati metoda vraća pogrešku koju možete riješiti ili nula ako nema grešaka.
Uspješno ste poslali e-poštu s elektronička pošta paket s manje redaka nego što biste morali pisati poslati mail s smtp paket.
Možete slati poštu pomoću ugrađenog SMTP paketa
Go je dobro isplaniran jezik budući da se njegova standardna biblioteka isporučuje s većinom funkcionalnosti koje će vam trebati za izgradnju kompletnih web aplikacija bez vanjskih ovisnosti ili paketa trećih strana.
The smtp Paket je zgodan za slanje e-pošte preko raznih servisa sa sličnim funkcijama elektronička pošta paket.