E-Mails mit Mailgun senden


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

  1. Registrieren Sie sich in Google Cloud Marketplace für ein neues Mailgun-Konto.

  2. 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 oder smtp.eu.mailgun.org.

  3. 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.

  1. 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.

  2. Werden Sie Superuser und legen Sie mit "umask" einen sicheren Zugriff fest:

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. 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
    

  4. Wählen Sie bei der entsprechenden Aufforderung die Konfiguration Local Only aus und übernehmen Sie die Standardauswahl für Domainnamen.

  5. Ä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
    
  6. Kommentieren Sie gegebenenfalls die folgenden Zeilen aus.

    # default_transport = error
    # relay_transport = error
    
  7. Fügen Sie den SMTP-Dienst für Mailgun mit folgender Zeile am Ende der Datei hinzu:

    relayhost = [smtp.mailgun.org]:2525
    
  8. 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
    
  9. Speichern Sie die Änderungen und schließen Sie die Datei.

  10. Generieren Sie die SASL-Passwortzuordnung:

    1. Erstellen Sie eine neue Passwortdatei, die für die Standardeingabe bereit ist.

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. Geben Sie die Dienstdetails an der Eingabeaufforderung ein und ersetzen Sie YOUR_SMTP_LOGIN und YOUR_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
      
    3. Schließen und speichern Sie die Datei durch die Eingabe des Trennzeichens EOF.

      > EOF
      
  11. 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
    
  12. 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
    
  13. 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
    
  14. 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
    

  15. Testen Sie die Konfiguration. Installieren Sie das Paket mailx oder mailutils 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