Intégrer Amazon SES à Postfix - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégrer Amazon SES à Postfix

Postfix est une alternative au très répandu agent de transfert de messages Sendmail ()MTA. Pour en savoir plus sur Postfix, consultez http://www.postfix.org. Les procédures présentées dans cette rubrique fonctionnent avec Linux, macOS ou Unix.

Note

Postfix est une application tierce qui n'est ni développée ni prise en charge par Amazon Web Services. Les procédures décrites dans cette section sont fournies à titre informatif seulement et peuvent être modifiées sans préavis.

Prérequis

Avant d'exécuter les procédures fournies dans cette section, vous devez effectuer les tâches suivantes :

  • Désinstallez l'application Sendmail si elle est installée sur votre système. La procédure d'exécution de cette étape varie en fonction du système d'exploitation que vous utilisez.

    Important

    Les références à sendmail suivantes sont liées à la commande Postfix sendmail et non à l’application Sendmail.

  • Installez Postfix. La procédure d'exécution de cette étape varie en fonction du système d'exploitation que vous utilisez.

  • Installez un package SASL d'authentification. La procédure d'exécution de cette étape varie en fonction du système d'exploitation que vous utilisez. Par exemple, si vous utilisez un système RedHat basé, vous devez installer le cyrus-sasl-plain package. Si vous utilisez un système basé sur Debian ou Ubuntu, vous devez installer le package libsasl2-modules.

  • Vérifiez l'adresse e-mail ou le domaine que vous utiliserez pour envoyer les e-mails. Pour plus d'informations, consultez Création d'une identité d'adresse e-mail.

  • Si votre compte est toujours dans l'environnement de test (sandbox), vous ne pouvez envoyer des e-mails qu'aux adresses e-mail vérifiées. Pour plus d'informations, consultez Demande d'accès à la production (sortie du SES sandbox Amazon).

Configuration de Postfix

Suivez les procédures suivantes pour configurer votre serveur de messagerie afin qu'il envoie des e-mails via Amazon à SES l'aide de Postfix.

Pour configurer Postfix
  1. Sur la ligne de commande, entrez la commande suivante :

    sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \ "smtp_sasl_auth_enable = yes" \ "smtp_sasl_security_options = noanonymous" \ "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \ "smtp_use_tls = yes" \ "smtp_tls_security_level = secure" \ "smtp_tls_note_starttls_offer = yes"
    Note

    Si vous utilisez Amazon SES dans une AWS région autre que l'ouest des États-Unis (Oregon), remplacez email-smtp.us-west-2.amazonaws.com dans la commande précédente avec le SMTP point de terminaison de la région appropriée. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

  2. Ouvrez le fichier /etc/postfix/master.cf dans un éditeur de texte. Recherchez l'entrée suivante :

    -o smtp_fallback_relay=

    Si vous recherchez cette entrée, placez-la en commentaire en insérant un caractère # (dièse) en début de ligne. Enregistrez et fermez le fichier .

    Si cette entrée n'est pas présente, passez à l'étape suivante.

  3. Ouvrez le fichier /etc/postfix/sasl_passwd dans un éditeur de texte. Si le fichier n'existe pas déjà, créez-le.

  4. Ajoutez la ligne suivante à /etc/postfix/sasl_passwd :

    [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
    Note

    Remplacez SMTPUSERNAME and SMTPPASSWORD avec vos identifiants SMTP de connexion. Vos identifiants de SMTP connexion ne sont pas les mêmes que votre identifiant de clé AWS d'accès et votre clé d'accès secrète. Pour en savoir plus sur les informations d'identification, consultez Obtention des SES SMTP informations d'identification Amazon.

    Si vous utilisez Amazon SES dans une AWS région autre que l'ouest des États-Unis (Oregon), remplacez email-smtp.us-west-2.amazonaws.com dans l'exemple précédent avec le SMTP point de terminaison de la région appropriée. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

    Enregistrez et fermez sasl_passwd.

  5. À l'invite de commande, tapez la commande suivante pour créer un fichier de base de données hashmap contenant vos SMTP informations d'identification :

    sudo postmap hash:/etc/postfix/sasl_passwd
  6. (Facultatif) Les fichiers /etc/postfix/sasl_passwd et /etc/postfix/sasl_passwd.db que vous avez créés au cours des étapes précédentes ne sont pas chiffrés. Étant donné que ces fichiers contiennent vos SMTP informations d'identification, nous vous recommandons de modifier la propriété et les autorisations des fichiers afin d'en restreindre l'accès. Pour restreindre l'accès à ces fichiers :

    1. Dans une invite de commande, entrez la commande suivante pour modifier la propriété des fichiers :

      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    2. Dans une invite de commande, entrez la commande suivante pour modifier les autorisations des fichiers pour que seul l'utilisateur racine puisse lire ou écrire dans ces fichiers :

      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  7. Indiquez à Postfix où se trouve le certificat CA (nécessaire pour vérifier le certificat SES du serveur Amazon). La commande que vous utilisez dans cette étape varie en fonction de votre système d'exploitation.

    • Si vous utilisez Amazon Linux, Red Hat Enterprise Linux ou une distribution connexe, saisissez la commande suivante :

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Si vous utilisez Ubuntu ou une distribution connexe, saisissez la commande suivante :

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • Si vous utilisez macOS, vous pouvez générer le certificat à partir de l'utilitaire Keychain de votre système. Pour générer le certificat, tapez la commande suivante sur la ligne de commande :

      sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /etc/ssl/certs/ca-bundle.crt

      Une fois le certificat généré, tapez la commande suivante :

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  8. Tapez la commande suivante pour démarrer le serveur Postfix (ou pour recharger les paramètres de configuration si le serveur est déjà en cours d'exécution) :

    sudo postfix start; sudo postfix reload
  9. Envoyez un e-mail de test en saisissant ce qui suit sur la ligne de commande, en appuyant sur Entrée après chaque ligne. Remplacez sender@example.com avec votre adresse e-mail From. L'adresse d'expédition doit être vérifiée pour être utilisée avec AmazonSES. Remplacez recipient@example.com avec l'adresse de destination. Si votre compte est encore dans l'environnement de test (sandbox), l'adresse du destinataire doit également être vérifiée. Enfin, la dernière ligne du message doit contenir uniquement un point (.), sans autre contenu.

    sendmail -f sender@example.com recipient@example.com From: Sender Name <sender@example.com> Subject: Amazon SES Test This message was sent using Amazon SES. .
  10. Vérifiez la boîte aux lettres associée à l'adresse du destinataire. Si l'e-mail n'arrive pas, vérifiez le dossier des courriers indésirables. Si vous ne trouvez toujours pas l'e-mail, vérifiez le journal de messagerie de votre système (généralement situé dans /var/log/maillog) pour en savoir plus.

Exemple d'utilisation avancée

Cet exemple montre comment envoyer un e-mail qui utilise un ensemble de configuration et qui utilise le codage MIME -multipart pour envoyer à la fois un texte brut et une HTML version du message, ainsi qu'une pièce jointe. Il inclut également une balise de lien, qui peut être utilisée pour classer les événements de clic. Le contenu de l'e-mail étant spécifié dans un fichier externe, vous n'avez pas à entrer manuellement les commandes dans la session Postfix.

Pour envoyer un MIME e-mail en plusieurs parties à l'aide de Postfix
  1. Dans un éditeur de texte, créez un fichier nommé mime-email.txt.

  2. Dans le fichier texte, collez le contenu suivant, en remplaçant les valeurs en rouge par les valeurs appropriées de votre compte :

    X-SES-CONFIGURATION-SET: ConfigSet From:Sender Name <sender@example.com> Subject:Amazon SES Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU" --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ" --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Amazon SES Test This message was sent from Amazon SES using the SMTP interface. For more information, see: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html> <head> </head> <body> <h1>Amazon SES Test</h1> <p>This message was sent from Amazon SES using the SMTP interface.</p> <p>For more information, see <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html"> Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES Developer Guide</em>.</p> </body> </html> --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ-- --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="customers.txt" SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENh bmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixV bml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ== --YWVhZDFlY2QzMGQ2N2U0YTZmODU--

    Enregistrez et fermez le fichier .

  3. Sur la ligne de commande, entrez la commande suivante. Remplacez sender@example.com avec votre adresse e-mail, et remplacez recipient@example.com avec l'adresse e-mail du destinataire.

    sendmail -f sender@example.com recipient@example.com < mime-email.txt

    Si la commande s'exécute correctement, elle se termine sans fournir de sortie.

  4. Vérifiez que vous avez bien reçu l'e-mail dans votre boîte de réception. Si le message n'a pas été remis, vérifiez le journal de messagerie dans votre système.