Pe măsură ce creați aplicații, va trebui să trimiteți e-mailuri în diferite scopuri, de la notificări la autentificare și multe altele. Go oferă smtp și Poștă pachete din biblioteca sa standard pentru trimiterea de e-mailuri. Există, de asemenea, multe pachete de e-mail de la terți în ecosistemul Go.
Pachetele de e-mail încorporate fac trimiterea e-mailurilor o sarcină complexă. Dacă nu sunteți un dezvoltator de aplicații pe partea de server, este posibil să găsiți smtp și Poștă pachete dificil de utilizat și configurat.
O alternativă populară este cea a lui Jordan Wright e-mail pachet care abstractizează complexitatea trimiterii e-mailului. De asemenea, adaugă funcții pe care nu le vei găsi în smtp și Poștă pachete.
Noțiuni introductive cu pachetul de e-mail
The e-mail pachetul este o bibliotecă ușoară, robustă și flexibilă, populară pentru simplitatea sa. Cu doar câteva linii de cod, puteți crea și trimite un e-mail cu atașamente, conținut HTML și multe altele. Pachetul acceptă, de asemenea, funcții avansate, cum ar fi conexiuni SMTP securizate și destinatari multipli, făcându-l un instrument versatil pentru nevoile dvs. de e-mail.
Pachetul de e-mail acceptă, de asemenea, câmpuri CC și BCC, adrese de e-mail în mai multe formate, chitanțe de citire și anteturi personalizate.
Deoarece pachetul nu este încorporat în biblioteca standard Go, va trebui să îl instalați cu du-te și ia comanda. Pachetul de e-mail acceptă versiunile Go 1.15 și mai sus.
Rulați această comandă pentru a instala pachetul în dependențele proiectului după inițializarea unui nou proiect.
merge obțineți github.com/jordan-wright/email
După ce ați instalat pachetul de e-mail, îl puteți importa specificând locația în raport cu calea de instalare:
import (
"fmt"
„github.com/jordan-wright/email”
"net/smtp"
)
Vei folosi fmt pachet pentru a imprima ieșirea în consolă și în smtp pachet în scopuri de autentificare.
Trimiterea de e-mailuri cu pachetul de e-mail
Va trebui să declarați variabile pentru a stoca datele pentru e-mailul dvs. Declarați variabile pentru e-mailul și parola dvs.
mail := "email-ul tau"
parola := „parola aplicației dvs.”
Puteți codifica parola sau utilizați un fișier cu variabile de mediu pentru securitate îmbunătățită.
The Poștă și parola variabilele ar trebui să conțină e-mailul și respectiv parola.
Va trebui să declarați variabile pentru adresa gazdei și numărul portului pentru e-mail. Iată adresa gazdă și numărul portului pentru Yahoo Mail:
Adresa gazdă:= „smtp.mail.yahoo.com”
hostPort := "465"
De asemenea, va trebui să creați o nouă instanță de e-mail pentru a trimite e-mailuri cu e-mail pachet. Puteți utiliza metoda NewEmail a e-mail pachet pentru a inițializa o instanță de e-mail pentru e-mailul dvs.:
newEmail := e-mail. Email nou()
The Email nou returnează o instanță struct pe care o puteți modifica pentru elementele e-mailului dvs.
Puteți folosi Din și La câmpuri ale structurii pentru a adăuga e-mailurile expeditorului și destinatarului la instanța dvs. de e-mail.
Email nou. De la = mail
Email nou. Către = []şir{"lista destinatarilor"}
The La câmpul este o porțiune de șiruri de caractere cu capacitate nelimitată pe care o puteți folosi pentru a declara toate adresele destinatarilor.
Poti sa adaugi CC și BCC câmpurile e-mailului dvs. folosind Bcc și Cc câmpurile instanței struct:
Email nou. Bcc = []şir{"lista de bcc"}
Email nou. Cc = []şir{"lista de cc"}
Pentru conținutul e-mailului, puteți adăuga subiectul și conținutul text al e-mailului dvs. utilizând Subiect și Text câmpurile structurii. Subiectul este un câmp șir, iar conținutul textului este o porțiune de octeți.
Email nou. Subiect = „Subiectul e-mailului”
Email nou. Text = []octet(„Corpul e-mailului tău”)
După ce ați adăugat toate câmpurile necesare, puteți trimite e-mailul folosind Trimite metoda instanței dvs. de e-mail. The Trimite metoda preia adresa gazdei, numărul portului gazdă și o instanță a smtp pachetelor PlainAuth.
err := e-mail nou. Trimite(
fmt. Sprintf(„%s:%s”, hostAddress, hostPort),
smtp. PlainAuth("", mail, parola, gazdaAdresa)
)
dacă greș!= zero {
fmt. Println(„A apărut o eroare la trimiterea e-mailului”)
} altfel {
fmt. Println(„E-mailul a fost trimis cu succes”)
}
The Trimite metoda returnează o eroare pe care o puteți gestiona sau zero dacă nu există erori.
Ați trimis cu succes un e-mail cu e-mail pachet cu mai puține rânduri decât ar trebui să scrieți trimite un mail cu smtp pachet.
Puteți trimite e-mailuri cu pachetul SMTP încorporat
Go este un limbaj bine planificat, deoarece biblioteca sa standard este livrată cu majoritatea funcționalităților de care veți avea nevoie pentru a construi aplicații web complete, fără dependențe externe sau pachete terțe.
The smtp pachetul este util pentru trimiterea de e-mailuri prin diverse servicii cu funcționalități similare cu e-mail pachet.