Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

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.

instagram viewer

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.