Google Cloud ist mit Mailgun kompatibel, wodurch Sie von einem E-Mail-Dienst mit einer programmatischen API, Logaufbewahrung, E-Mail-Personalisierung, Analysen und E-Mail-Validierung profitieren.
Die folgende Anleitung zeigt, wie Sie Mailgun als E-Mail-Relay mit Postfix konfigurieren.
Vorbereitung
Registrieren Sie sich in Google Cloud Marketplace für ein neues Mailgun-Konto.
Rufen Sie Ihre Anmeldedaten ab. Sie benötigen Ihren SMTP-Nutzernamen, Ihr Passwort und Ihren Hostnamen für Mailgun. Ihren Nutzernamen und Ihr Passwort erhalten Sie im Steuerfeld von Mailgun im Abschnitt Domains.
Je nach Konfiguration der Domain in Mailgun lautet der SMTP-Hostname entweder
smtp.mailgun.org
odersmtp.eu.mailgun.org
.Konfigurieren Sie Ihre Firewallregeln so, dass ausgehender Traffic über TCP-Port
2525
zugelassen wird.
Mailgun als E-Mail-Relais mit Postfix konfigurieren
Wenn Sie Mailgun als E-Mail-Relais konfigurieren, kann der E-Mail-Übertragungs-Agent Postfix E-Mails für die Remote-Übermittlung weiterleiten.
Stellen Sie eine SSH-Verbindung zur Instanz her.
gcloud compute ssh [INSTANCE_NAME]
Dabei ist
[INSTANCE_NAME]
der Name der VM-Instanz, von der aus Sie E-Mails senden möchten.Werden Sie Superuser und legen Sie mit "umask" einen sicheren Zugriff fest:
user@test-instance:~$ sudo su -
root@test-instance:~# umask 077
Installieren Sie den Postfix Mail Transport Agent.
Debian
root@test-instance:~# apt update && apt -y install postfix libsasl2-modules
CentOS
root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
Wählen Sie bei der entsprechenden Aufforderung die Konfiguration
Local Only
aus und übernehmen Sie die Standardauswahl für Domainnamen.Ändern Sie die Postfix-Konfigurationsoptionen. Die Postfix-Konfigurationsoptionen werden in der Datei
main.cf
festgelegt. Öffnen Sie die Datei in einem beliebigen Texteditor:root@test-instance:~# vi /etc/postfix/main.cf
Kommentieren Sie gegebenenfalls die folgenden Zeilen aus.
# default_transport = error # relay_transport = error
Fügen Sie den SMTP-Dienst für Mailgun mit folgender Zeile am Ende der Datei hinzu:
relayhost = [smtp.mailgun.org]:2525
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu, um die SSL/TLS-Unterstützung zu erzwingen und die SMTP-Authentifizierung für diese Anfragen zu konfigurieren. Die Authentifizierung in der Postfix-Konfiguration wird von einem SASL-Modul (Simple Authentication and Security Layer) verarbeitet.
smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
Speichern Sie die Änderungen und schließen Sie die Datei.
Generieren Sie die SASL-Passwortzuordnung:
Erstellen Sie eine neue Passwortdatei, die für die Standardeingabe bereit ist.
root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
Geben Sie die Dienstdetails an der Eingabeaufforderung ein und ersetzen Sie
YOUR_SMTP_LOGIN
undYOUR_SMTP_PASSWORD
durch Ihre Anmeldedaten. Wie Sie Ihre domainspezifischen Anmeldedaten aufrufen oder ändern können, erfahren Sie in der Mailgun-Hilfe.> [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
Schließen und speichern Sie die Datei durch die Eingabe des Trennzeichens
EOF
.> EOF
Verwenden Sie das Dienstprogramm
postmap
zur Generierung einer.db
-Datei.root@test-instance:~# postmap /etc/postfix/sasl_passwd
root@test-instance:~# ls -l /etc/postfix/sasl_passwd* -rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
Entfernen Sie als Nächstes die Datei mit Ihren Anmeldedaten, da sie nicht mehr benötigt wird.
root@test-instance:~# rm /etc/postfix/sasl_passwd
Legen Sie die Berechtigungen für die
.db
-Datei fest.root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
Laden Sie die Konfiguration abschließend neu, um die geänderten Parameter zu laden:
Debian
root@test-wheezy:~# /etc/init.d/postfix restart
CentOS
[root@test-centos ~]# postfix reload
Testen Sie die Konfiguration. Installieren Sie das Paket
mailx
odermailutils
und testen Sie die Konfiguration.Debian
root@test-wheezy:~# apt -y install mailutils
CentOS
[root@test-centos ~]# yum install mailx -y
Senden Sie eine Testnachricht:
root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
Suchen Sie in den Systemlogs nach einer Statuszeile, die
status
und den Code für eine erfolgreiche Serverantwort(250)
enthält.Debian
root@test-wheezy:~# tail -n 5 /var/log/syslog
CentOS
[root@test-centos ~]# tail -n 5 /var/log/maillog
Ausführliche Beispiele und Informationen zu anderen Themen, z. B. dem Erfassen und Weiterleiten von Nachrichten, finden Sie in der Mailgun-Dokumentation.
Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center