Når du bygger apper, må du sende e-post til forskjellige formål, fra varsler til autentisering og mange flere. Go gir smtp og post pakker i standardbiblioteket for å sende e-post. Det er også mange tredjeparts e-postpakker i Go-økosystemet.
De innebygde postpakkene gjør det å sende e-post til en kompleks oppgave. Hvis du ikke er en applikasjonsutvikler på serversiden, kan du finne smtp og post pakker som er vanskelige å bruke og konfigurere.
Et populært alternativ er Jordan Wrights e-post pakke som abstraherer kompleksiteten ved å sende post. Den legger også til funksjoner du ikke finner i smtp og post pakker.
Komme i gang med e-postpakken
De e-post pakken er et lett, robust og fleksibelt bibliotek, populært for sin enkelhet. Med bare noen få linjer med kode kan du opprette og sende en e-post med vedlegg, HTML-innhold og mer. Pakken støtter også avanserte funksjoner som sikre SMTP-tilkoblinger og flere mottakere, noe som gjør den til et allsidig verktøy for dine e-postbehov.
E-postpakken støtter også CC- og BCC-felt, e-postadresser i flere formater, lesebekreftelser og egendefinerte overskrifter.
Siden pakken ikke er innebygd i Go-standardbiblioteket, må du installere den med gå og hent kommando. E-postpakken støtter Go versjon 1.15 og nyere.
Kjør denne kommandoen for å installere pakken til prosjektets avhengigheter etter initialisering av et nytt prosjekt.
gå skaff deg github.com/jordan-wright/email
Når du har installert e-postpakken, kan du importere den ved å spesifisere plasseringen i forhold til installasjonsbanen:
import (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Du vil bruke fmt pakke for å skrive ut til konsollen og smtp pakke for autentiseringsformål.
Sende e-poster med e-postpakken
Du må deklarere variabler for å lagre dataene for e-posten din. Deklarer variabler for e-post og passord.
mail := "din epost"
passord := "app-passordet ditt"
Du kan hardkode passordet eller bruk en miljøvariabelfil for økt sikkerhet.
De post og passord variabler skal inneholde henholdsvis e-post og passord.
Du må deklarere variabler for vertsadressen og portnummeret for posten. Her er vertsadressen og portnummeret for Yahoo-post:
vertsadresse := "smtp.mail.yahoo.com"
hostPort := "465"
Du må også opprette en ny e-postforekomst for å sende e-poster med e-post pakke. Du kan bruke NewEmail-metoden til e-post pakke for å initialisere en e-postforekomst for e-posten din:
nyE-post := e-post. Ny epost()
De Ny epost metoden returnerer en struct-forekomst som du kan endre for elementene i e-posten din.
Du kan bruke Fra og Til feltene i strukturen for å legge til avsenderens og mottakerens e-post til e-postforekomsten din.
ny epost. Fra = mail
ny epost. Til = []streng{"liste over mottakere"}
De Til felt er et stykke strenger med ubegrenset kapasitet som du kan bruke til å deklarere alle mottakeradressene dine.
Du kan legge til CC og BCC feltene i e-posten din ved å bruke Blindkopi og Kopi felt i struct-forekomsten:
ny epost. Blindkopi = []streng{"liste over blindkopi"}
ny epost. Kopi = []streng{"liste over cc"}
For innholdet i e-posten kan du legge til emnet og tekstinnholdet i e-posten din ved å bruke Emne og Tekst feltene til strukturen. Emnet er et strengfelt, og tekstinnholdet er et bytestykke.
ny epost. Emne = "E-postemnet"
ny epost. Tekst = []byte("Bruk av e-posten din")
Etter at du har lagt til alle de obligatoriske feltene, kan du sende e-posten ved å bruke Sende metoden for e-postforekomsten din. De Sende metoden tar inn vertsadressen, vertsportnummeret og en forekomst av smtp pakkens PlainAuth.
feil := ny e-post. Sende(
fmt. Sprintf("%s:%s", vertsadresse, vertsport),
smtp. PlainAuth("", e-post, passord, vertsadresse)
)
hvis feil!= null {
fmt. Println("Det oppsto en feil under sending av e-post")
} ellers {
fmt. Println("E-posten ble sendt")
}
De Sende metoden returnerer en feil du kan håndtere eller null hvis det ikke er feil.
Du har sendt en e-post med e-post pakke med færre linjer enn du må skrive til send en mail med smtp pakke.
Du kan sende e-post med den innebygde SMTP-pakken
Go er et godt planlagt språk siden standardbiblioteket leveres med de fleste funksjonene du trenger for å bygge komplette webapplikasjoner uten eksterne avhengigheter eller tredjepartspakker.
De smtp pakken kommer godt med for å sende e-poster over ulike tjenester med lignende funksjoner som e-post pakke.