Terwijl u apps bouwt, moet u e-mails verzenden voor verschillende doeleinden, van meldingen tot authenticatie en nog veel meer. Go biedt de smtp En mail pakketten in de standaardbibliotheek voor het verzenden van e-mail. Er zijn ook veel e-mailpakketten van derden in het Go-ecosysteem.
De ingebouwde mailpakketten maken het verzenden van e-mail een complexe taak. Als u geen ontwikkelaar van server-side applicaties bent, vindt u misschien de smtp En mail pakketten lastig te gebruiken en te configureren.
Een populair alternatief is dat van Jordan Wright e-mailen pakket dat de complexiteit van het verzenden van e-mail abstraheert. Het voegt ook functies toe die u niet zult vinden in de smtp En mail pakketjes.
Aan de slag met het e-mailpakket
De e-mailen pakket is een lichtgewicht, robuuste en flexibele bibliotheek, populair vanwege zijn eenvoud. Met slechts een paar regels code kunt u een e-mail met bijlagen, HTML-inhoud en meer maken en verzenden. Het pakket ondersteunt ook geavanceerde functies zoals veilige SMTP-verbindingen en meerdere ontvangers, waardoor het een veelzijdige tool is voor uw e-mailbehoeften.
Het e-mailpakket ondersteunt ook CC- en BCC-velden, e-mailadressen in meerdere indelingen, leesbevestigingen en aangepaste kopteksten.
Aangezien het pakket niet is ingebouwd in de Go-standaardbibliotheek, moet u het installeren met de ga halen commando. Het e-mailpakket ondersteunt Go-versies 1.15 en hoger.
Voer deze opdracht uit om het pakket te installeren volgens de afhankelijkheden van uw project na het initialiseren van een nieuw project.
gaan ga naar github.com/jordan-wright/email
Nadat u het e-mailpakket hebt geïnstalleerd, kunt u het importeren door de locatie ten opzichte van uw installatiepad op te geven:
importeren (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Je gebruikt de fmt pakket om uitvoer af te drukken naar de console en het smtp pakket voor authenticatiedoeleinden.
E-mails verzenden met het e-mailpakket
U moet variabelen declareren om de gegevens voor uw e-mail op te slaan. Declareer variabelen voor uw e-mail en wachtwoord.
mail := "jouw email"
wachtwoord := "uw app-wachtwoord"
U kunt het wachtwoord hardcoderen of gebruik een omgevingsvariabelenbestand voor een betere beveiliging.
De mail En wachtwoord variabelen moeten respectievelijk uw e-mailadres en wachtwoord bevatten.
U moet variabelen declareren voor het hostadres en het poortnummer voor de e-mail. Hier zijn het hostadres en poortnummer voor Yahoo-mail:
hostadres := "smtp.mail.yahoo.com"
hostpoort := "465"
U moet ook een nieuwe e-mailinstantie maken om e-mails te verzenden met de e-mailen pakket. U kunt de methode NewEmail van de e-mailen pakket om een e-mailinstantie voor uw e-mail te initialiseren:
nieuwEmail := e-mail. Nieuwe e-mail()
De Nieuwe e-mail methode retourneert een struct-instantie die u kunt wijzigen voor de elementen van uw e-mail.
U kunt de Van En Naar velden van de structuur om de e-mails van de afzender en ontvanger toe te voegen aan uw e-mailinstantie.
nieuwe e-mail. Van = post
nieuwe e-mail. naar = []snaar{"lijst van ontvangers"}
De Naar veld is een stukje strings met onbeperkte capaciteit die u kunt gebruiken om al uw ontvangersadressen te declareren.
Je kan toevoegen CC En BCC velden van uw e-mail met behulp van de Bcc En Cc velden van de struct-instantie:
nieuwe e-mail. Bcc = []snaar{"lijst van bcc"}
nieuwe e-mail. Cc = []snaar{"lijst met cc"}
Voor de inhoud van de e-mail kunt u het onderwerp en de tekstinhoud van uw e-mail toevoegen met behulp van de Onderwerp En Tekst velden van de structuur. Het onderwerp is een tekenreeksveld en de tekstinhoud is een bytesegment.
nieuwe e-mail. Onderwerp = "Het e-mailonderwerp"
nieuwe e-mail. Tekst = []byte("Hoofdgedeelte van uw e-mail")
Nadat u alle vereiste velden heeft toegevoegd, kunt u de e-mail verzenden met behulp van de Versturen methode van uw e-mailinstantie. De Versturen methode neemt het hostadres, het hostpoortnummer en een exemplaar van de smtp pakketjes PlainAuth.
err := nieuweEmail. Versturen(
fmt. Sprintf("%s:%s", hostadres, hostpoort),
smtp. PlainAuth("", e-mail, wachtwoord, hostadres)
)
als fout!= nihil {
fmt. Println("Er is een fout opgetreden bij het verzenden van de e-mail")
} anders {
fmt. Println("De mail is succesvol verzonden")
}
De Versturen methode retourneert een fout die u kunt verwerken of nihil als er geen fouten zijn.
U heeft met succes een e-mail verzonden met de e-mailen pakket met minder regels dan waarnaar u zou moeten schrijven stuur een mail met de smtp pakket.
U kunt e-mail verzenden met het ingebouwde SMTP-pakket
Go is een goed geplande taal, aangezien de standaardbibliotheek wordt geleverd met de meeste functionaliteiten die je nodig hebt om complete webapplicaties te bouwen zonder externe afhankelijkheden of pakketten van derden.
De smtp pakket is handig voor het verzenden van e-mails via verschillende services met vergelijkbare functionaliteiten als het e-mailen pakket.