Intégrer Amazon SES à Sendmail - 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 à Sendmail

Sendmail a été lancé au début des années 1980 et a été continuellement amélioré depuis. Il s'agit d'un agent de transfert de messages flexible et configurable (MTA) avec une large communauté d'utilisateurs. Sendmail a été racheté par Proofpoint en 2013, mais ce dernier continue à proposer une version open source de Sendmail. Vous pouvez télécharger la version open source de Sendmail à partir du site web de Proofpoint, ou via un gestionnaire de paquets pour la plupart des distributions Linux.

La procédure décrite dans cette section explique comment configurer Sendmail pour envoyer des e-mails via AmazonSES. Cette procédure a été testée sur un serveur exécutant Ubuntu 18.04.2LTS.

Note

Sendmail 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 de commencer la procédure décrite dans cette section, vous devez effectuer les étapes suivantes :

  • Installez le paquet Sendmail sur votre serveur.

    Note

    Selon la distribution du système d'exploitation que vous utilisez, vous devrez peut-être également installer les paquets suivants : sendmail-cf, m4 et cyrus-sasl-plain.

  • Validez une identité à utiliser pour votre adresse d'expédition. Pour de plus amples informations, veuillez consulter Création d'une identité d'adresse e-mail.

    Si votre compte se trouve dans le SES sandbox d'Amazon, vous devez également vérifier les adresses auxquelles vous envoyez des e-mails. Pour de plus amples informations, veuillez consulter Demande d'accès à la production (sortie du SES sandbox Amazon).

Si vous utilisez Amazon SES pour envoyer des e-mails depuis une EC2 instance Amazon, vous devez également suivre les étapes suivantes :

  • Il se peut que vous deviez attribuer une adresse IP élastique à votre EC2 instance Amazon pour que les fournisseurs de messagerie puissent accepter votre e-mail. Pour plus d'informations, consultez les adresses IP Amazon EC2 Elastic dans le guide de EC2 l'utilisateur Amazon.

  • Amazon Elastic Compute Cloud (AmazonEC2) limite le trafic de courrier électronique sur le port 25 par défaut. Pour éviter les délais d'envoi d'e-mails via le SMTP point de terminaison depuis AmazonEC2, vous pouvez demander la suppression de ces restrictions. Pour plus d'informations, consultez Comment supprimer la restriction sur le port 25 de mon EC2 instance ou AWS Lambda fonction Amazon ? dans le AWS Knowledge Center.

    Vous pouvez également modifier la procédure de cette section pour utiliser le port 587 plutôt que le port 25.

Configuration de Sendmail

Suivez les étapes décrites dans cette section pour configurer Sendmail afin d'envoyer des e-mails à l'aide d'AmazonSES.

Important

La procédure décrite dans cette section part du principe que vous souhaitez utiliser Amazon SES dans l'ouest des États-Unis (Oregon) Région AWS. Si vous souhaitez utiliser une autre région, remplacez toutes les instances de email-smtp.us-west-2.amazonaws.com dans cette procédure par le SMTP point de terminaison de la région souhaitée. Pour obtenir la liste des SMTP points de terminaison URLs sur Régions AWS lesquels Amazon SES est disponible, consultez Amazon Simple Email Service (AmazonSES) dans le Références générales AWS.

Pour configurer Sendmail
  1. Dans un éditeur de fichier, ouvrez le fichier /etc/mail/authinfo. Si le fichier n'existe pas, créez-le.

    Ajoutez la ligne suivante à/etc/mail/authinfo:

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

    Dans l’exemple précédent, apportez les modifications suivantes :

    • Remplacez email-smtp.us-west-2.amazonaws.com avec le point de SES SMTP terminaison Amazon que vous souhaitez utiliser.

    • Remplacez smtpUsername avec votre nom SES SMTP d'utilisateur Amazon.

    • Remplacez smtpPassword avec votre SES SMTP mot de passe Amazon.

    Note

    Vos identifiants de SMTP connexion sont différents de votre identifiant de clé AWS d'accès et de votre clé d'accès secrète. Pour plus d'informations sur l'obtention de vos informations de SMTP connexion, consultezObtention des SES SMTP informations d'identification Amazon.

    Lorsque vous avez terminé, enregistrez authinfo.

  2. En ligne de commande, entrez la commande suivante pour générer le fichier /etc/mail/authinfo.db :

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  3. Sur la ligne de commande, tapez la commande suivante pour ajouter la prise en charge du relais vers le point de SES SMTP terminaison Amazon.

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

    Dans la commande précédente, remplacez email-smtp.us-west-2.amazonaws.com avec l'adresse du point de SES SMTP terminaison Amazon que vous souhaitez utiliser.

  4. Sur la ligne de commande, tapez la commande suivante pour régénérer/etc/mail/access.db :

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  5. En ligne de commande, entrez la commande suivante pour créer des sauvegardes des fichiers sendmail.cf et sendmail.mc :

    sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
  6. Ajoutez les lignes suivantes au fichier/etc/mail/sendmail.mc avant toute MAILER() définition.

    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

    Dans le texte précédent, procédez comme suit :

    • Remplacez email-smtp.us-west-2.amazonaws.com avec le point de SES SMTP terminaison Amazon que vous souhaitez utiliser.

    • Remplacez example.com avec le domaine que vous souhaitez utiliser pour envoyer un e-mail.

    Lorsque vous avez terminé, enregistrez le fichier.

    Note

    Amazon EC2 restreint les communications via le port 25 par défaut. Si vous utilisez Sendmail dans une EC2 instance Amazon, vous devez remplir la demande de suppression des limites d'envoi d'e-mails.

  7. En ligne de commande, tapez la commande suivante pour rendre sendmail.cf accessible en écriture :

    sudo chmod 666 /etc/mail/sendmail.cf
  8. En ligne de commande, tapez la commande suivante pour regénérer sendmail.cf :

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

    Si vous rencontrez des erreurs telles que « Commande introuvable » et « Fichier ou répertoire introuvable », assurez-vous que les paquets sendmail-cf et m4 sont installés sur votre système.

  9. En ligne de commande, tapez la commande suivante pour réinitialiser les autorisations de sendmail.cf de façon qu'il soit accessible en lecture seule :

    sudo chmod 644 /etc/mail/sendmail.cf
  10. En ligne de commande, tapez la commande suivante pour redémarrer Sendmail :

    sudo /etc/init.d/sendmail restart

    Selon la version de Linux ou de Sendmail, si ce qui précède ne fonctionne pas, essayez ce qui suit :

    sudo su service sendmail restart
  11. Effectuez les étapes suivantes pour envoyer un e-mail de test :

    1. En ligne de commande, entrez la commande suivante.

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

      Remplacez sender@example.com avec votre adresse e-mail From. Remplacez recipient@example.com avec l'adresse To. Une fois que vous avez terminé, appuyez sur Enter.

    2. Entrez le contenu de message suivant. Appuyez sur Enter à la fin de chaque ligne.

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

      Lorsque vous avez fini d'entrer le contenu de l'e-mail, appuyez sur Ctrl+D pour l'envoyer.

  12. Vérifiez le client du destinataire de l'e-mail pour l'e-mail. Si vous ne trouvez pas l'e-mail, vérifiez le dossier des courriers indésirables. S'il ne s'y trouve pas non plus, vérifiez le journal Sendmail sur votre serveur de messagerie. Le journal se trouve souvent dans/var/log/mail.log ou/var/log/maillog.