Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

När du bygger appar måste du skicka e-postmeddelanden för olika ändamål, från aviseringar till autentisering och många fler. Go tillhandahåller smtp och post paket i sitt standardbibliotek för att skicka e-post. Det finns också många e-postpaket från tredje part i Go-ekosystemet.

De inbyggda e-postpaketen gör att skicka e-post till en komplex uppgift. Om du inte är en applikationsutvecklare på serversidan kan du hitta smtp och post paket som är svåra att använda och konfigurera.

Ett populärt alternativ är Jordan Wrights e-post paket som abstraherar komplexiteten i att skicka e-post. Den lägger också till funktioner som du inte hittar i smtp och post paket.

Komma igång med e-postpaketet

De e-post paketet är ett lätt, robust och flexibelt bibliotek, populärt för sin enkelhet. Med bara några rader kod kan du skapa och skicka ett e-postmeddelande med bilagor, HTML-innehåll och mer. Paketet stöder även avancerade funktioner som säkra SMTP-anslutningar och flera mottagare, vilket gör det till ett mångsidigt verktyg för dina e-postbehov.

instagram viewer

E-postpaketet stöder även CC- och BCC-fält, e-postadresser i flera format, läskvitton och anpassade rubriker.

Eftersom paketet inte är inbyggt i Go-standardbiblioteket, måste du installera det med att få kommando. E-postpaketet stöder Go version 1.15 och högre.

Kör det här kommandot för att installera paketet till ditt projekts beroenden efter initialisering av ett nytt projekt.

 skaffa github.com/jordan-wright/email

När du har installerat e-postpaketet kan du importera det genom att ange platsen i förhållande till din installationssökväg:

importera (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)

Du kommer att använda fmt paket för att skriva ut utdata till konsolen och smtp paket för autentiseringsändamål.

Skicka e-post med e-postpaketet

Du måste deklarera variabler för att lagra data för din e-post. Deklarera variabler för din e-postadress och ditt lösenord.

mail := "din email"
lösenord := "ditt app-lösenord"

Du kan hårdkoda lösenordet eller använd en miljövariabelfil för förbättrad säkerhet.

De post och Lösenord variabler ska innehålla din e-postadress respektive ditt lösenord.

Du måste deklarera variabler för värdadressen och portnumret för posten. Här är värdadressen och portnumret för Yahoo Mail:

värdadress := "smtp.mail.yahoo.com"
hostPort := "465"

Du måste också skapa en ny e-postinstans för att skicka e-postmeddelanden med e-post paket. Du kan använda metoden NewEmail för e-post paket för att initiera en e-postinstans för din post:

nyE-post := e-post. Ny E-post()

De Ny E-post metod returnerar en struct-instans som du kan ändra för elementen i din e-post.

Du kan använda Från och Till fälten i strukturen för att lägga till avsändarens och mottagarens e-postmeddelanden till din e-postinstans.

Ny E-post. Från = mail
Ny E-post. Till = []sträng{"lista över mottagare"}

De Till field är en del av strängar med obegränsad kapacitet som du kan använda för att deklarera alla dina mottagaradresser.

Du kan lägga till CC och BCC fälten i din e-post med hjälp av Hemlig kopia och Cc fält i struct-instansen:

Ny E-post. Hemlig kopia = []sträng{"lista över hemlig kopia"}
Ny E-post. Kopia = []sträng{"lista över cc"}

För innehållet i e-postmeddelandet kan du lägga till ämnet och textinnehållet i ditt e-postmeddelande med hjälp av Ämne och Text strukturens fält. Ämnet är ett strängfält och textinnehållet är ett bytesegment.

Ny E-post. Ämne = "E-postämnet"
Ny E-post. Text = []byte("Body of your email")

När du har lagt till alla obligatoriska fält kan du skicka e-postmeddelandet med hjälp av Skicka metoden för din e-postinstans. De Skicka metoden tar in värdadressen, värdportnumret och en instans av smtp paketets PlainAuth.

err := ny e-post. Skicka(
fmt. Sprintf("%s:%s", värdadress, värdport),
smtp. PlainAuth("", e-post, lösenord, värdadress)
)

om fel!= noll {
fmt. Println("Det uppstod ett fel när e-postmeddelandet skickades")
} annan {
fmt. Println("E-postmeddelandet har skickats")
}

De Skicka metod returnerar ett fel som du kan hantera eller noll om det inte finns några fel.

Du har framgångsrikt skickat ett e-postmeddelande med e-post paket med färre rader än du skulle behöva skriva till skicka ett mail med smtp paket.

Du kan skicka e-post med det inbyggda SMTP-paketet

Go är ett välplanerat språk eftersom dess standardbibliotek levereras med de flesta funktioner du behöver för att bygga kompletta webbapplikationer utan externa beroenden eller tredjepartspaket.

De smtp paketet är praktiskt för att skicka e-post via olika tjänster med liknande funktioner som e-post paket.