Mentre crei app, dovrai inviare e-mail per scopi diversi, dalle notifiche all'autenticazione e molti altri. Go fornisce il smtp E posta pacchetti nella sua libreria standard per l'invio di posta elettronica. Ci sono anche molti pacchetti di posta elettronica di terze parti nell'ecosistema Go.
I pacchetti di posta incorporati rendono l'invio di e-mail un'attività complessa. Se non sei uno sviluppatore di applicazioni lato server, potresti trovare il file smtp E posta pacchetti complicati da usare e configurare.
Un'alternativa popolare è quella di Jordan Wright e-mail pacchetto che astrae la complessità dell'invio di posta. Aggiunge anche funzionalità che non troverai in smtp E posta Pacchetti.
Iniziare con il pacchetto e-mail
IL e-mail package è una libreria leggera, robusta e flessibile, popolare per la sua semplicità. Con poche righe di codice, puoi creare e inviare un'e-mail con allegati, contenuto HTML e altro. Il pacchetto supporta anche funzionalità avanzate come connessioni SMTP sicure e destinatari multipli, rendendolo uno strumento versatile per le tue esigenze di posta elettronica.
Il pacchetto e-mail supporta anche campi CC e BCC, indirizzi e-mail in più formati, conferme di lettura e intestazioni personalizzate.
Poiché il pacchetto non è integrato nella libreria standard di Go, dovrai installarlo con il file vai a prendere comando. Il pacchetto email supporta le versioni Go 1.15 e successive.
Esegui questo comando per installare il pacchetto nelle dipendenze del tuo progetto dopo aver inizializzato un nuovo progetto.
andare scarica github.com/jordan-wright/email
Una volta installato il pacchetto email, puoi importarlo specificando la posizione relativa al tuo percorso di installazione:
importare (
"fmt"
"github.com/jordan-wright/e-mail"
"rete/smtp"
)
Userai il fmt package per stampare l'output sulla console e il file smtp pacchetto per scopi di autenticazione.
Invio di posta con il pacchetto e-mail
Dovrai dichiarare le variabili per memorizzare i dati per la tua posta. Dichiara le variabili per la tua email e password.
posta := "la tua email"
parola d'ordine := "la password dell'app"
Puoi codificare la password o utilizzare un file di variabile d'ambiente per una maggiore sicurezza.
IL posta E parola d'ordine le variabili dovrebbero contenere rispettivamente la tua email e la tua password.
Dovrai dichiarare le variabili per l'indirizzo host e il numero di porta per la posta. Ecco l'indirizzo host e il numero di porta per la posta di Yahoo:
hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"
Dovrai anche creare una nuova istanza di posta elettronica per inviare e-mail con il formato e-mail pacchetto. È possibile utilizzare il metodo NewEmail del file e-mail pacchetto per inizializzare un'istanza email per la tua posta:
newEmail := email. Nuova email()
IL Nuova email Il metodo restituisce un'istanza struct che puoi modificare per gli elementi della tua email.
Puoi usare il Da E A campi della struttura per aggiungere le e-mail del mittente e del destinatario alla tua istanza di posta elettronica.
nuova email. Da = posta
nuova email. A = []corda{"elenco dei destinatari"}
IL A field è una porzione di stringhe con capacità illimitata che puoi usare per dichiarare tutti i tuoi indirizzi di destinatari.
Puoi aggiungere CC E BCC campi della tua e-mail utilizzando il Bcc E CC campi dell'istanza struct:
nuova email. Ccn = []corda{"lista Ccn"}
nuova email. CC = []corda{"elenco di cc"}
Per i contenuti della posta, puoi aggiungere l'oggetto e il contenuto del testo della tua e-mail utilizzando il Soggetto E Testo campi della struttura. L'oggetto è un campo stringa e il contenuto del testo è una porzione di byte.
nuova email. Soggetto = "L'oggetto dell'e-mail"
nuova email. Testo = []byte("Corpo della tua email")
Dopo aver aggiunto tutti i campi richiesti, puoi inviare l'e-mail utilizzando il Inviare metodo della tua istanza di posta elettronica. IL Inviare Il metodo accetta l'indirizzo dell'host, il numero della porta dell'host e un'istanza di smtp Pacchetti PlainAuth.
err := newEmail. Inviare(
fmt. Sprintf("%s:%s", hostAddress, hostPort),
smtp. PlainAuth("", posta, password, hostAddress)
)
Se errare!= zero {
fmt. Stampaln("Si è verificato un errore durante l'invio della posta")
} altro {
fmt. Stampaln("La mail è stata inviata con successo")
}
IL Inviare Il metodo restituisce un errore che puoi gestire o zero se non ci sono errori.
Hai inviato con successo una mail con il e-mail package con meno righe di quelle su cui dovresti scrivere inviare una mail con il smtp pacchetto.
Puoi inviare posta con il pacchetto SMTP integrato
Go è un linguaggio ben progettato poiché la sua libreria standard viene fornita con la maggior parte delle funzionalità necessarie per creare applicazioni Web complete senza dipendenze esterne o pacchetti di terze parti.
IL smtp è utile per inviare e-mail tramite vari servizi con funzionalità simili a e-mail pacchetto.