Envoyer des e-mails avec Mailgun


Google Cloud travaille avec Mailgun pour fournir un service de messagerie doté d'une API programmatique, ainsi que de la conservation des journaux, de la personnalisation des e-mails, de l'analyse et de la validation des e-mails.

Les instructions suivantes vous montrent comment configurer Mailgun en tant que relais de messagerie avec Postfix.

Avant de commencer

  1. Inscrivez-vous et créez un compte Mailgun sur Google Cloud Marketplace.

  2. Obtenez vos identifiants. Pour utiliser le service, vous devez connaître votre nom d'utilisateur, votre mot de passe et votre nom d'hôte SMTP Mailgun. Vous trouverez votre nom d'utilisateur et votre mot de passe dans la section Domaines du panneau de configuration Mailgun.

    Suivant la configuration du domaine dans Mailgun, le nom d'hôte SMTP est smtp.mailgun.org ou smtp.eu.mailgun.org.

  3. Configurez vos règles de pare-feu pour autoriser le trafic sortant sur le port TCP 2525.

Configurer Mailgun en tant que relais de messagerie avec Postfix

Si vous configurez Mailgun en tant que relais de messagerie, l'agent de transfert Postfix peut transférer les e-mails destinés à être distribués à distance.

  1. Connectez-vous à votre instance via SSH.

    gcloud compute ssh [INSTANCE_NAME]
    

    [INSTANCE_NAME] correspond au nom de l'instance de VM à partir de laquelle vous voulez envoyer un e-mail.

  2. Devenez un super-utilisateur et définissez un attribut "umask" sécurisé :

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. Installez l'agent de transfert de messages Postfix.

    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. Lorsque vous y êtes invité, sélectionnez la configuration Local Only et acceptez les choix par défaut pour les noms de domaine.

  5. Modifiez les options de configuration de Postfix. Elles sont définies dans le fichier main.cf. Ouvrez ce dernier avec l'éditeur de texte de votre choix.

    root@test-instance:~# vi /etc/postfix/main.cf
    
  6. Si les lignes suivantes existent, passez-les en commentaire :

    # default_transport = error
    # relay_transport = error
    
  7. Ajoutez le service SMTP Mailgun. Pour ce faire, ajoutez la ligne suivante à la fin du fichier :

    relayhost = [smtp.mailgun.org]:2525
    
  8. Pour appliquer la compatibilité des protocoles SSL/TLS et configurer l'authentification SMTP pour ces requêtes, ajoutez les lignes suivantes à la fin du fichier : Un module de couche de sécurité et d'authentification simple (SASL, Simple Authentication and Security Layer) gère l'authentification dans la configuration de Postfix.

    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. Enregistrez les modifications et fermez le fichier.

  10. Générez la carte de mot de passe SASL.

    1. Créez un fichier de mot de passe prêt à recevoir une entrée standard.

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. Lorsque vous y êtes invité, saisissez les détails du service en remplaçant YOUR_SMTP_LOGIN et YOUR_SMTP_PASSWORD par vos identifiants. Consultez l'aide de Mailgun pour savoir comment afficher ou modifier vos identifiants par domaine.

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. Fermez et enregistrez le fichier en saisissant le délimiteur EOF.

      > EOF
      
  11. Avec l'utilitaire postmap, générez un fichier .db.

    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. Ensuite, supprimez le fichier contenant vos identifiants, car il n'est plus nécessaire.

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  13. Définissez les autorisations sur le fichier .db.

    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. Enfin, actualisez votre configuration pour charger les paramètres modifiés.

    Debian

    root@test-wheezy:~# /etc/init.d/postfix restart
    

    CentOS

    [root@test-centos ~]# postfix reload
    

  15. Testez la configuration. Installez le package mailx ou mailutils, puis testez votre configuration.

    Debian

    root@test-wheezy:~# apt -y install mailutils
    

    CentOS

    [root@test-centos ~]# yum install mailx -y
    

    Envoyez un message de test.

    root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
    

    Dans vos journaux système, recherchez une ligne d'état contenant status et le code de réponse du serveur indiquant le succès de l'opération ((250)).

    Debian

    root@test-wheezy:~# tail -n 5 /var/log/syslog
    

    CentOS

    [root@test-centos ~]# tail -n 5 /var/log/maillog
    

Pour obtenir des informations et des exemples détaillés sur d'autres thèmes, y compris sur le suivi et l'acheminement des messages, consultez la documentation de Mailgun.

Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.