Integration von Amazon SES mit Sendmail - Amazon Simple Email Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Integration von Amazon SES mit Sendmail

Sendmail wurde in den frühen 80er-Jahren veröffentlicht und seitdem kontinuierlich verbessert. Es ist ein flexibler und konfigurierbarer Nachrichtenübertragungsagent (MTA) mit einer großen Benutzergemeinschaft. Sendmail wurde im Jahr 2013 von Proofpoint übernommen, Proofpoint bietet aber weiterhin eine Open-Source-Version von Sendmail an. Sie können die Open Source-Version von Sendmail von der Proofpoint-Website oder über den Paket-Manager der meisten Linux-Distributionen herunterladen.

Das Verfahren in diesem Abschnitt zeigt Ihnen, wie Sie Sendmail für den Versand von E-Mails über Amazon konfigurieren. SES Dieses Verfahren wurde auf einem Server mit Ubuntu 18.04.2 getestet. LTS

Anmerkung

Sendmail ist eine Drittanbieter-Anwendung und wird von Amazon Web Services nicht entwickelt oder unterstützt. Die Verfahren in diesem Abschnitt dienen ausschließlich zu Informationszwecken und können ohne vorherige Ankündigung geändert werden.

Voraussetzungen

Bevor Sie das Verfahren in diesem Abschnitt ausführen, sollten Sie die folgenden Schritte ausführen:

  • Installieren Sie das Sendmail-Paket auf Ihrem Server.

    Anmerkung

    Je nachdem, welches Betriebssystem Sie verwenden, müssen Sie möglicherweise auch die folgenden Pakete installieren: sendmail-cf, m4 und cyrus-sasl-plain.

  • Überprüfen Sie die als „Von“-Adresse zu verwendende Identität. Weitere Informationen finden Sie unter Erstellen einer E-Mail-Adressidentität.

    Wenn sich Ihr Konto in der SES Amazon-Sandbox befindet, müssen Sie auch die Adressen überprüfen, an die Sie E-Mails senden. Weitere Informationen finden Sie unter Produktionszugriff anfordern (Verlassen der SES Amazon-Sandbox).

Wenn Sie Amazon verwendenSES, um E-Mails von einer EC2 Amazon-Instance aus zu senden, sollten Sie auch die folgenden Schritte ausführen:

  • Möglicherweise müssen Sie Ihrer EC2 Amazon-Instance eine Elastic IP-Adresse zuweisen, damit die empfangenden E-Mail-Anbieter Ihre E-Mail akzeptieren können. Weitere Informationen finden Sie unter Amazon EC2 Elastic IP-Adressen im EC2Amazon-Benutzerhandbuch.

  • Amazon Elastic Compute Cloud (AmazonEC2) schränkt den E-Mail-Verkehr über Port 25 standardmäßig ein. Um Timeouts beim Senden von E-Mails über den SMTP Endpunkt von Amazon zu vermeidenEC2, können Sie beantragen, dass diese Einschränkungen aufgehoben werden. Weitere Informationen finden Sie unter Wie entferne ich die Beschränkung für Port 25 aus meiner EC2 Amazon-Instance oder AWS Lambda -Funktion? im AWS Knowledge Center.

    Alternativ können Sie das Verfahren in diesem Abschnitt ändern, um Port 587 anstelle von Port 25 zu verwenden.

Konfigurieren von Sendmail

Gehen Sie wie in diesem Abschnitt beschrieben vor, um Sendmail für das Senden von E-Mails über Amazon zu konfigurieren. SES

Wichtig

Bei dem Verfahren in diesem Abschnitt wird davon ausgegangen, dass Sie Amazon SES im Westen der USA (Oregon) verwenden möchten AWS-Region. Wenn Sie eine andere Region verwenden möchten, ersetzen Sie in diesem Verfahren alle Instanzen von email-smtp.us-west-2.amazonaws.com durch den SMTP Endpunkt der gewünschten Region. Eine Liste der SMTP Endpunkte, URLs auf AWS-Regionen denen Amazon verfügbar SES ist, finden Sie unter Amazon Simple Email Service (AmazonSES) in der Allgemeine AWS-Referenz.

So konfigurieren Sie Sendmail:
  1. Öffnen Sie in einem Datei-Editor die Datei /etc/mail/authinfo. Wenn die Datei nicht vorhanden ist, erstellen Sie sie.

    Fügen Sie die folgende Zeile zu/hinzuetc/mail/authinfo:

    AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:smtpUsername" "P:smtpPassword" "M:PLAIN"

    Nehmen Sie im vorherigen Beispiel Sie die folgenden Änderungen vor:

    • Ersetzen email-smtp.us-west-2.amazonaws.com mit dem SES SMTP Amazon-Endpunkt, den Sie verwenden möchten.

    • Ersetzen smtpUsername mit Ihrem SES SMTP Amazon-Benutzernamen.

    • Ersetzen smtpPassword mit Ihrem SES SMTP Amazon-Passwort.

    Anmerkung

    Ihre SMTP Anmeldedaten unterscheiden sich von Ihrer AWS Zugangsschlüssel-ID und Ihrem geheimen Zugriffsschlüssel. Weitere Informationen zum Abrufen Ihrer SMTP Anmeldedaten finden Sie unter. Abrufen von SES SMTP Amazon-Anmeldeinformationen

    Wenn Sie fertig sind, speichern Sie authinfo.

  2. Geben Sie in der Befehlszeile den folgenden Befehl ein, um die /etc/mail/authinfo.db-Datei zu erstellen:

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  3. Geben Sie in der Befehlszeile den folgenden Befehl ein, um Unterstützung für die Weiterleitung an den SES SMTP Amazon-Endpunkt hinzuzufügen.

    sudo sh -c 'echo "Connect:email-smtp.us-west-2.amazonaws.com RELAY" >> /etc/mail/access'

    Ersetzen Sie im vorherigen Befehl email-smtp.us-west-2.amazonaws.com mit der Adresse des SES SMTP Amazon-Endpunkts, den Sie verwenden möchten.

  4. Geben Sie in der Befehlszeile den folgenden Befehl ein, um/etc/mail/access.db neu zu generieren:

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  5. Geben Sie in der Befehlszeile den folgenden Befehl ein, um Sicherungskopien der Dateien sendmail.cf und sendmail.mc zu erstellen:

    sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
  6. Fügen Sie der Datei/etc/mail/sendmail.mc vor allen Definitionen die folgenden Zeilen hinzu. MAILER()

    define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnl define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl MASQUERADE_AS(`example.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

    Gehen Sie im vorhergehenden Text wie folgt vor.

    • Ersetzen email-smtp.us-west-2.amazonaws.com mit dem SES SMTP Amazon-Endpunkt, den Sie verwenden möchten.

    • Ersetzen example.com mit der Domain, die Sie zum Senden von E-Mails verwenden möchten.

    Wenn Sie fertig sind, speichern Sie die Datei.

    Anmerkung

    Amazon EC2 schränkt standardmäßig die Kommunikation über Port 25 ein. Wenn Sie Sendmail in einer EC2 Amazon-Instance verwenden, sollten Sie die Anfrage zur Aufhebung der Einschränkungen beim Senden von E-Mails abschließen.

  7. Geben Sie in der Befehlszeile den folgenden Befehl ein, um sendmail.cf schreibfähig zu machen:

    sudo chmod 666 /etc/mail/sendmail.cf
  8. Geben Sie in der Befehlszeile den folgenden Befehl ein, um sendmail.cf erneut zu generieren:

    sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
    Anmerkung

    Wenn Fehler, wie „Command not found (Befehl nicht gefunden“ und „No such file or directory (Verzeichnis nicht vorhanden)“ auftreten, stellen Sie sicher, dass die Pakete m4 und sendmail-cf auf Ihrem System installiert sind.

  9. Geben Sie in der Befehlszeile den folgenden Befehl ein, um die Berechtigungen von sendmail.cf auf „schreibgeschützt“ zurückzusetzen:

    sudo chmod 644 /etc/mail/sendmail.cf
  10. Geben Sie in der Befehlszeile den folgenden Befehl ein, um Sendmail neu zu starten:

    sudo /etc/init.d/sendmail restart

    Versuchen Sie je nach der Version von Linux oder Sendmail Folgendes, wenn das oben genannte nicht funktioniert:

    sudo su service sendmail restart
  11. Führen Sie die folgenden Schritte aus, um eine Test-E-Mail-Nachricht zu senden:

    1. Geben Sie in der Befehlszeile den folgenden Befehl ein:

      /usr/sbin/sendmail -vf sender@example.com recipient@example.com

      Ersetzen sender@example.com mit Ihrer Absender-E-Mail-Adresse. Ersetzen recipient@example.com mit der Absenderadresse. Wenn Sie fertig sind, betätigen Sie Enter.

    2. Geben Sie den folgenden Nachrichteninhalt ein. Betätigen Sie nach jeder Zeile Enter.

      From: sender@example.com To: recipient@example.com Subject: Amazon SES test email This is a test message sent from Amazon SES using Sendmail.

      Wenn Sie den Inhalt der E-Mail-Nachricht eingegeben haben, betätigen Sie Ctrl+D, um sie zu senden.

  12. Überprüfen Sie den E-Mail-Client des Empfängers auf die E-Mail-Nachricht. Wenn Sie die E-Mail-Nachricht nicht finden können, überprüfen Sie den Spam-Ordner. Wenn Sie die E-Mail-Nachricht immer noch nicht finden können, überprüfen Sie das Sendmail-Protokoll auf Ihrem E-Mail-Server. Das Protokoll befindet sich häufig unter/var/log/mail.log oder/var/log/maillog.