Veröffentlicht am 31. März 2020 von Dominic Böttger (vor 6 Jahren) · 2 Min. Lesezeit
Es gibt viele Dokumentationen und Beispiele für die Amazon Web Services CLI-Tools, aber deutlich weniger Beispiele für das AWS PowerShell-Modul. Ich hatte das Problem, dass ich kein funktionierendes Beispiel zum Versenden von E-Mails über AWS SES finden konnte und selbst eine Lösung erarbeiten musste. Ich hoffe, der folgende Beitrag spart euch Zeit.
Ich gehe davon aus, dass die PowerShell-Tools bereits installiert sind und die AWS-Zugangsdaten eingerichtet wurden.
Da ich die AWS CLI bereits installiert hatte, waren meine Zugangsdaten schon gespeichert und ich musste nur noch das PowerShell-Modul installieren und laden.
Install-Module -Name AWSPowerShell.NetCore
Import-Module AWSPowerShell.NetCore
Falls eine andere Installationsart benötigt wird oder weitere Informationen zur Einrichtung der Zugangsdaten gewünscht sind, empfehle ich einen Blick in die offizielle AWS PowerShell-Tools Dokumentation.
Vorlage erstellen und speichern
Zuerst habe ich eine JSON-Datei für die Vorlage erstellt und den folgenden Inhalt als mytemplate.json gespeichert.
{
"Template": {
"TemplateName": "MyTemplate",
"SubjectPart": "Greetings, TESTSTRING!",
"HtmlPart": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> <title>Demystifying Email Design</title> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/> </head> <body>Español üäü {{name}}</body> </html>",
"TextPart": "Dear TESTSTRING,\r\nYour favorite animal is TESTSTRING."
}
}
Um die Vorlage in den SES-Vorlagenspeicher zu laden, muss der Inhalt der JSON-Datei geladen werden (Unicode ist wichtig!), von JSON in ein Objekt konvertiert und dann an das New-SesTemplate CmdLet weitergeleitet werden.
Get-Content -Path ./mytemplate.json -Encoding UTF-8 | convertFrom-Json | New-SesTemplate
E-Mail versenden
Nachdem die Vorlage erstellt wurde, können E-Mails mit dem Inhalt der Vorlage versendet und die Platzhalter in der Vorlage mit Daten gefüllt werden.
Dazu speichert man den folgenden Inhalt in einer Datei namens myemail.json.
{
"Source":"Mary Major <mary.major@example.com>",
"Template": "MyTemplate",
"Destination_ToAddress": [ "test@example.com" ],
"TemplateData": "{ \"name\":\"Español\", \"favoriteanimal\": \"alligator in IL template\" }"
}
Die JSON-Datei muss an die eigenen Bedürfnisse angepasst werden. Das bedeutet insbesondere, dass die E-Mail-Adressen entsprechend der eigenen SES- und Domain-Konfiguration ersetzt werden sollten.
Um die E-Mail zu versenden, muss nur der folgende Code ausgeführt werden.
Get-Content -Path ../myemail.json -Encoding UTF-8 | convertFrom-JSON | Send-SESTemplatedEmail
Herzlichen Glückwunsch zum Versand eurer E-Mail über SES mit PowerShell!
Geschrieben von Dominic Böttger
← Zurück zum Blog