Dominic Böttger

← Zurück zum Blog

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

Aktuelle Blogbeiträge