So senden Sie Anhänge in Golang

王林
Freigeben: 2023-05-15 11:10:37
Original
1110 Leute haben es durchsucht

Mit der rasanten Entwicklung des Internets ist E-Mail zu einem unverzichtbaren Bestandteil des täglichen Lebens und der Arbeit der Menschen geworden. Bei E-Mails kommen immer häufiger E-Mails mit Anhängen vor, wie z. B. das Versenden von Lebensläufen, Verträgen, Bildern usw. Golang ist eine schnelle, einfache und sichere Programmiersprache, die immer mehr Menschen zur Entwicklung von E-Mail-Versandanwendungen verwenden. In diesem Artikel erklären wir, wie Sie mit Golang E-Mails mit Anhängen versenden.

Zuerst müssen wir eine E-Mail-Versandbibliothek zum Senden von E-Mails verwenden. Ich empfehle die Verwendung der beliebten Gomail-Bibliothek. Es handelt sich um eine einfache und benutzerfreundliche E-Mail-Versandbibliothek, die SMTP und das Senden von Anhängen unterstützt. Wir müssen es mit dem Befehl go get installieren:

go get gopkg.in/gomail.v2
Nach dem Login kopieren

Als nächstes müssen wir eine E-Mail mit einem Anhang erstellen. Um dies zu erreichen, müssen wir eine mehrteilige Nachricht für den E-Mail-Text und die Anhänge erstellen. Dies ist ein Standardformat für E-Mail-Inhalte und -Anhänge. Schauen wir uns an, wie man eine mehrteilige Nachricht mit Anhängen erstellt:

func createMessage(to []string, subject string, body string, attachmentPath string) *gomail.Message {
    //create a new message
    message := gomail.NewMessage()
    //set the receiver
    message.SetHeader("To", to...)
    //set the subject
    message.SetHeader("Subject", subject)

    //create a multipart message
    multipart := gomail.NewMultipart("mixed")
    message.SetBody("text/html", body)

    //create and add attachment
    attachment := gomail.NewMessagePart()
    attachment.SetHeader("Content-Type", "application/octet-stream")
    attachment.SetHeader("Content-Disposition", fmt.Sprintf("attachment; filename=%s", attachmentPath))
    attachment.SetBodyFile(attachmentPath)
    multipart.AddPart(attachment)

    //add multipart message to the main message
    message.SetBody(multipart)
    return message
}
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst eine neue Nachricht und legen dann die Empfänger und den Betreff fest. Als Nächstes erstellen wir eine mehrteilige Nachricht mit Text und Anhängen. Schließlich fügen wir die mehrteilige Nachricht zur Hauptnachricht hinzu und geben diese Nachricht zurück.

Im obigen Code verwenden wir NewMessage, um eine E-Mail-Instanz zu erstellen und legen dann die E-Mail-Adresse und den E-Mail-Betreff des Empfängers fest. Als nächstes haben wir eine Multipart-Instanz erstellt und sie dem Theme hinzugefügt. Eine mehrteilige Instanz enthält Textinhalte und Anhänge mit Dateipfaden. Der Inhaltstyp und der Dateiname des Anhangs werden in der Multipart-Instanz festgelegt und der erstellten Multipart-Instanz hinzugefügt. Schließlich legen wir die Multipart-Instanz als Textkörper der E-Mail-Instanz fest.

Da wir nun die E-Mail mit dem Anhang erstellt haben, besteht der nächste Schritt darin, die E-Mail über das SMTP-Protokoll an den vorgesehenen Empfänger zu senden. Der folgende Code zeigt, wie Sie die beliebte Gomail-Bibliothek zum Senden von E-Mails verwenden:

func sendEmail(to []string, subject string, body string, attachmentPath string) {
    //create a new message
    message := createMessage(to, subject, body, attachmentPath)

    //create a new SMTP dialer
    dialer := gomail.NewDialer("smtp.gmail.com", 587, "yourEmail@gmail.com", "yourPassword")

    //send the message using the SMTP dialer
    if err := dialer.DialAndSend(message); err != nil {
        log.Fatalf("Failed to send email: %v", err)
    }
}
Nach dem Login kopieren

Im obigen Code rufen wir zuerst die Funktion createMessage auf, um eine E-Mail-Nachricht zu erstellen, und erstellen dann ein Dialer-Objekt Wird verwendet, um eine Verbindung zum SMTP-Server herzustellen. Wir müssen die Serveradresse, die Portnummer, die E-Mail-Adresse und das Passwort des E-Mail-Absenders festlegen. Hier nehmen wir den SMTP-Server von Gmail.

Schließlich senden wir die E-Mail über die DialAndSend-Methode an den Zielempfänger. Wenn beim Senden einer E-Mail ein Fehler auftritt, wird ein Fehler ungleich Null zurückgegeben. Wir können den Fehlerbehandlungsmechanismus verwenden, um Ausnahmen zu behandeln.

Zusammenfassung:

In diesem Artikel haben wir vorgestellt, wie man E-Mails mit Anhängen mit Golang versendet. Wir haben die Gomail-Bibliothek zum Versenden der E-Mail verwendet, eine mehrteilige Nachricht erstellt, den Text und die Anhänge hinzugefügt und die E-Mail über SMTP an den Empfänger gesendet. In diesem Artikel erfahren Sie, wie Sie die E-Mail-Versandbibliothek in Golang zum Senden von E-Mails mit Anhängen verwenden.

Das obige ist der detaillierte Inhalt vonSo senden Sie Anhänge in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage