Beispiel für Massenmailer
In diesem Beispiel erstellen wir einen kleinen Massenversender, um die gleiche Mail an eine größere Liste von Empfängern zu versenden. Für uns ist es wichtig, den Empfänger in der Mail direkt anzusprechen. Deshalb werden wir das html/template
und text/template
System von Go zusammen mit Platzhaltern verwenden.
|
|
Nehmen wir das Beispiel mal auseinander, um uns ein paar Details anzuschauen…
Zuerst, in Zeile 15, definieren wir einen neuen Typ für unsere Nutzer, die wir ansprechen wollen. Das ist völlig optional und wird nur gemacht, damit wir mit einer Liste von Benutzern arbeiten und sie später in unserer Textvorlage ansprechen können. Wie du das handhabst, liegt ganz bei dir und ist nicht zwingend notwendig, damit es funktioniert.
In Zeile 28 bis 48 haben wir einen einfachen Text- und HTML-Template-Mailkörper mit Platzhaltern eingerichtet, der mit Go’s html/template
und text/template
verwendet werden kann.
Als Nächstes erstellen wir eine Liste von Nutzern, an die wir unser tolles Massenmailing schicken wollen. Zeile 52 verwendet dafür den Typ User
. Nachdem wir die Vorbereitungen getroffen haben, beginnen wir in Zeile 70 mit einer Schleife über alle unsere Benutzer. Für jeden Benutzer erstellen wir eine neue *mail.Msg
.
Bei Massenmails ist es üblich, dass die ENVELOPE FROM
und die MAIL FROM
unterschiedlich sind, so dass Bounce-Mails an ein System gesendet werden, das diese Bounces im lokalen System als gebounced markieren kann. Deshalb setzen wir diese beiden von Adressaten in Zeile 73 und Zeile 76. Die Zeilen 79 bis 85 sollten dich nicht überraschen, wenn du go-mail schon einmal benutzt hast.
Eine weitere wichtige Sache passiert in Zeilen 86 bis 91, in denen wir unsere vorbereiteten html/template
und text/template
Vorlagen verwenden und sie mit m.SetBodyHTMLTemplate
und m.AddAlternativeTextTemplate
auf unsere E-Mail-Nachricht anwenden. Wir stellen dieser Methode die gesamte Benutzerstruktur als Daten zur Verfügung, so dass html/template
und text/template
sich um das Ersetzen der Platzhalter im Mailkörper kümmern können. Go-mail kümmert sich um den ganzen Schnickschnack mit der Vorlagenbearbeitung für dich. Da unsere Mailnachricht nun vollständig ist, fügen wir sie in Zeile 93 an unsere Mailnachrichtenscheibe an.
Zum Schluss erstellen wir einen neuen Client und senden alle unsere vorbereiteten Nachrichten in einem Rutsch, indem wir die gesamte Nachrichtenscheibe an Client.DialAndSend
übergeben.