

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égration d'Amazon SES à Postfix
<a name="postfix"></a>

Postfix est une alternative à l'agent MTA (Message Transfert Agent) de Sendmail couramment utilisé. Pour en savoir plus sur Postfix, consultez [http://www.postfix.org](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.

## Conditions préalables
<a name="send-email-postfix-prereqs"></a>

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 d'authentification SASL. 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](creating-identities.md#verify-email-addresses-procedure).
+ 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 sandbox d'Amazon SES)](request-production-access.md).

## Configuration de Postfix
<a name="send-email-postfix"></a>

Terminez la procédure suivante afin de configurer votre serveur de messagerie pour envoyer des e-mails via Amazon SES en utilisant 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* la commande précédente par le point de terminaison SMTP de la région appropriée. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

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

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

1. Ajoutez la ligne suivante à `/etc/postfix/sasl_passwd` :

   ```
   [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
   ```
**Note**  
Remplacez *SMTPUSERNAME* et *SMTPPASSWORD* par vos identifiants de connexion SMTP. Vos informations d'identification de connexion SMTP ne sont pas les mêmes que votre ID de clé d'accès AWS et votre clé d'accès secrète. Pour en savoir plus sur les informations d'identification, consultez [Obtention des informations d'identification SMTP Amazon SES](smtp-credentials.md).  
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 par le point de terminaison SMTP de la région appropriée. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

   Enregistrez et fermez `sasl_passwd`.

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

   ```
   sudo postmap hash:/etc/postfix/sasl_passwd
   ```

1. (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. Ces fichiers contenant vos informations d'identification SMTP, nous vous recommandons d'en modifier les autorisations et la propriété 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
      ```

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

1. Indiquez à Postfix où trouver le certificat d'une autorité de certification (nécessaire pour vérifier le certificat de serveur Amazon SES). 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 | sudo tee /etc/ssl/certs/ca-bundle.crt > /dev/null
     ```

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

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
     ```

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

1. 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* par votre adresse e-mail From. L'adresse d'expédition doit être vérifiée pour une utilisation avec Amazon SES. Remplacez *recipient@example.com* par 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.                
   .
   ```

1. 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
<a name="send-email-postfix-advanced"></a>

Cet exemple montre comment envoyer un e-mail qui utilise un [jeu de configurations](using-configuration-sets.md) et l'encodage MIME en plusieurs parties pour envoyer une version en texte brut et une version HTML du message avec une pièce jointe. Il inclut également une [balise de lien](faqs-metrics.md#sending-metric-faqs-clicks-q5), 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 e-mail MIME en plusieurs parties avec Postfix**

1. Dans un éditeur de texte, créez un fichier nommé `mime-email.txt`.

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

1. Sur la ligne de commande, entrez la commande suivante. Remplacez *sender@example.com* par votre adresse e-mail et remplacez *recipient@example.com* par 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.

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