Når du bygger apps, skal du sende e-mails til forskellige formål, fra meddelelser til godkendelse og mange flere. Go giver smtp og post pakker i dets standardbibliotek til afsendelse af e-mail. Der er også mange tredjeparts e-mail-pakker i Go-økosystemet.
De indbyggede postpakker gør det at sende e-mail til en kompleks opgave. Hvis du ikke er en applikationsudvikler på serversiden, finder du muligvis smtp og post pakker vanskelige at bruge og konfigurere.
Et populært alternativ er Jordan Wrights e-mail pakke, der abstraherer kompleksiteten ved at sende post. Det tilføjer også funktioner, du ikke finder i smtp og post pakker.
Kom godt i gang med e-mail-pakken
Det e-mail pakken er et let, robust og fleksibelt bibliotek, populært for dets enkelthed. Med blot et par linjer kode kan du oprette og sende en e-mail med vedhæftede filer, HTML-indhold og mere. Pakken understøtter også avancerede funktioner såsom sikre SMTP-forbindelser og flere modtagere, hvilket gør den til et alsidigt værktøj til dine e-mail-behov.
E-mail-pakken understøtter også CC- og BCC-felter, e-mail-adresser i flere formater, læsekvitteringer og tilpassede overskrifter.
Da pakken ikke er indbygget i Go-standardbiblioteket, skal du installere den med Hent kommando. E-mail-pakken understøtter Go version 1.15 og nyere.
Kør denne kommando for at installere pakken til dit projekts afhængigheder efter initialisering af et nyt projekt.
gå få github.com/jordan-wright/email
Når du har installeret e-mail-pakken, kan du importere den ved at angive placeringen i forhold til din installationssti:
importere (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Du vil bruge fmt pakke til at udskrive output til konsollen og smtp pakke til godkendelsesformål.
Afsendelse af mails med e-mail-pakken
Du bliver nødt til at erklære variabler for at gemme dataene for din mail. Deklarer variabler for din e-mail og adgangskode.
mail := "din email"
adgangskode := "din app-adgangskode"
Du kan hardkode adgangskoden eller bruge en miljøvariabel fil for forbedret sikkerhed.
Det post og adgangskode variabler skal indeholde henholdsvis din e-mail og adgangskode.
Du skal angive variabler for værtsadressen og portnummeret for posten. Her er værtsadressen og portnummeret for Yahoo-mail:
værtsadresse := "smtp.mail.yahoo.com"
hostPort := "465"
Du skal også oprette en ny e-mail-instans for at sende e-mails med e-mail pakke. Du kan bruge NewEmail-metoden til e-mail pakke for at initialisere en e-mail-forekomst til din e-mail:
nyEmail := email. Ny email()
Det Ny email metode returnerer en struct-instans, som du kan ændre for elementerne i din e-mail.
Du kan bruge Fra og Til felter i strukturen for at tilføje afsenderens og modtagerens e-mails til din e-mailforekomst.
ny email. Fra = mail
ny email. Til = []snor{"liste over modtagere"}
Det Til felt er et udsnit af strenge med ubegrænset kapacitet, som du kan bruge til at angive alle dine modtageradresser.
Du kan tilføje CC og BCC felter i din e-mail ved hjælp af Bcc og Cc felter i struct-forekomsten:
ny email. Bcc = []snor{"liste over bcc"}
ny email. Cc = []snor{"liste over cc"}
For indholdet af e-mailen kan du tilføje emnet og tekstindholdet i din e-mail ved hjælp af Emne og Tekst konstruktionens felter. Emnet er et strengfelt, og tekstindholdet er et byteudsnit.
ny email. Emne = "E-mail-emnet"
ny email. Tekst = []byte("Brødtekst af din e-mail")
Når du har tilføjet alle de påkrævede felter, kan du sende e-mailen ved hjælp af Sende metoden for din e-mail-instans. Det Sende metoden tager værtsadressen, værtsportnummeret og en forekomst af smtp pakkens PlainAuth.
fejl := ny e-mail. Sende(
fmt. Sprintf("%s:%s", værtsadresse, værtsport),
smtp. PlainAuth("", mail, adgangskode, værtsadresse)
)
hvis fejl!= nul {
fmt. Println("Der opstod en fejl under afsendelse af mailen")
} andet {
fmt. Println("Mailen blev sendt")
}
Det Sende metode returnerer en fejl du kan håndtere eller nul hvis der ikke er fejl.
Du har sendt en mail med e-mail pakke med færre linjer, end du skal skrive til send en mail med smtp pakke.
Du kan sende mail med den indbyggede SMTP-pakke
Go er et velplanlagt sprog, da dets standardbibliotek leveres med de fleste af de funktioner, du skal bruge for at bygge komplette webapplikationer uden eksterne afhængigheder eller tredjepartspakker.
Det smtp pakken er praktisk til at sende e-mails over forskellige tjenester med lignende funktionaliteter som e-mail pakke.