Amazon SES als Relay in Mailcow

In einem anderen Blog schrieb ich bereits darüber warum es wichtig ist einen Mailserver mit einer hohen Reputation zu haben. Kurz zusammen gefasst kann man sagen dass man nur mit einer hohen Mailserverreputation auch eine hohe Zustellrate der eigenen Mails erreicht. Hat man diese Reputation nicht, landen Mails häufig im Spamordner oder werden abgelehnt.

Nun kann man selbst einen Mailserver aufsetzen und diesem unter Einsatz einiger Monate eine hohe Reputation verschaffen, oder man bedient sich Anbieter die Mailserver mit hoher Reputation bereitstellen.

Davon gibt es zahlreiche, jedoch sticht vor allem Amazon Simple Email Service (kurz SES) durch ein enorm gutes Preisleistungsverhältnis heraus. So kann man über Amazon SES 100.000 Mails mit bester Reputation für gerade mal 10 Dollar verschicken.

Amazon SES als Relay Server

Amazon SES ersetzt aber keinen Mailserver. So ist SES eigentlich nicht dafür gedacht Mails zu empfangen. Auch verwaltet Amazon SES entsprechend keine Mailboxen.

Möchte ein Mailclient eine Mail verschicken, so geht das immer über einen Mailserver. Erst der Mailserver baut dann eine Verbindung zu Amazon SES auf und verschickt die Mail über diesen Dienst. Man spricht hier von einem Mailserver Relay.

E-Mails die an uns geschickt werden gehen nicht über Amazon SES sondern direkt an unseren Mailserver. Beim Empfangen ist die Reputation unwichtig, daher kann sich unser Mailserver direkt um den Mailempfang kümmern.

Die Basis: Ein Mailserver

Wir benötigen also einen Mailserver. Dazu nutze ich die Softwaresuite mailcow. Wie diese eingerichtet wird habe ich bereits hier beschrieben. Später werden wir Amazon SES als Relay konfigurieren, doch dazu müssen wir SES erst entsprechend einrichten.

Amazon SES einrichten

Als nächstes müssen wir uns bei Amazon SES anmelden. Dafür wird ein Amazon AWS Konto benötigt. Haben wir die Anmeldung abgeschlossen, gilt es die Einrichtung für Amazon SES durchzuführen.

Wichtig: Amazon SES wird an mehreren Standorten angeboten. Den Standort kann man rechts oben wählen. Teile der Konfiguration sind vom Standort abhängig. Da ich das anfangs nicht wusste, durfte ich die Konfiguration zweimal durchführen, da ich nach der Anmeldung in der Region USA war, aber nach Europa wechselte.

Zuerst legen wir eine neue Domain an. Um die Domain zu bestätigen müssen diverse DNS Einstellungen gemacht werden. Amazon führt diese jedoch detailliert auf.

Wir fügen unsere Domain zu Amazon SES hinzu.

Ist die Domain validiert, müssen wir die einzelnen Mailadressen nicht mehr validieren, solange diese zu einer validierten Domain gehören.

SES Sendelimit erhöhen

Bis jetzt befindet sich unser SES Account im Sandbox Modus. Das bedeutet es werden keine Mails verschickt. Da wir das ändern wollen müssen wir eine Anfrage zur Erhöhung des Sendelimits stellen. Diese Anfrage wurde bei mir nach 20 Stunden beantwortet und genehmigt.

Bei dieser Anfrage muss man angeben ob man Mailrückläufer behandelt (Bounce Handling), ob die Empfänger zugestimmt haben Mails zu bekommen und ob man sich an Amazons Regeln hält. Vermutlich wird eine Anfrage nur genehmigt wenn man alle Punkte bejaht. Entsprechend sollte man sich auch wirklich um diese Punkte kümmern, sonst wird man von Amazon SES recht schnell gesperrt.

SMTP Credentials

Damit wir von unserer Mailcow Installation aus Amazon SES als Relayhost nutzen können benötigen wir SMTP Zugangsdaten bestehend aus Serveradresse, Benutzername und Passwort. Auch wenn wir Amazon SES mit mehreren Domains nutzen, genügt ein SMTP Zugang.

Mailserver Konfiguration

Damit ist die Einrichtung von Amazon SES abgeschlossen. Nun müssen wir mailcow entsprechend konfigurieren. Das geht zum Glück recht fix. Als erstes fügen wir einen neuen Relayhost hinzu und geben dabei die gerade erstellten SMTP Daten an. Dazu gehen wir in die Administration Konfiguration innerhalb der Mailcow UI:

Wir fügen Amazon SES als Relay Server hinzu.

Ist das erledigt, definieren wir im zweiten und letzten Schritt welche Domains über Amazon SES verschickt werden sollen. Das kann man in der Mailbox Konfiguration auf Domain Ebene erledigen:

Mailcow: Relay pro Domain hinterlegen

Fazit

Damit ist die Einrichtung abgeschlossen. Nun sollte man die Funktion noch testen in dem man eine Mail verschickt. Wie schon weiter oben erwähnt sollte man darauf achten nicht zu viele Bounces/Rückläufer zu generieren. Bei mehr als 5% Rückläufer Quote wird Amazon nervös.

2 Kommentare

  1. Hallo,

    ich hätte eine frage, würde so ein SMTP Relay einen PTR Record beim eigenen server überflüssig machen? da die E-Mails ja dann quasi von Amazon kommen.

    Ich frage deshalb weil ich zuhause einen guten Server habe und eigentlich soviel wie möglich zuhause haben möchte auch von den Backups her.

    aktuell habe ich einen VPS mit mailcow nur für den PTR Record, würde es so auch gehen?

  2. Hi Matthias,

    das einstellen des SES Relay’s funktioniert 1a . Danke hierfür.
    Leider gehen bei aktuellen Code-Stand von mailcow folgende 2 Cases bei mir nicht und ich wollte wissen ob es in deinem Setup geht:

    a) Reiner E-Mail-Alias/E-Mail-Forward wird direkt verschickt, statt über das Relay
    b) E-Mail-Konto mit einer Weiterleitung zu einer anderen E-Mail, da schimpf SES das die Absender-Domain falsch ist.

    Würde mich über deine Antwort freuen.

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*