Sendmail gmail debian13

Configuration complète, propre et fonctionnelle de Sendmail avec Gmail sur Debian 13 — incluant l’authentification, le chiffrement TLS et un test d’envoi via la commande mail


🚀 Objectif

Configurer Sendmail pour envoyer des mails via Gmail SMTP (port 587), avec mot de passe d’application, puis tester avec la commande :

echo "Message test" | mail -s "Sujet" tonmail@gmail.com

🧰 1. Installation des paquets nécessaires

sudo apt update
sudo apt install sendmail sendmail-bin sendmail-cf mailutils libsasl2-modules

Ce que ça fait :

  • sendmail → le serveur SMTP
  • sendmail-cf → permet d’utiliser m4 pour générer sendmail.cf
  • mailutils → fournit la commande mail
  • libsasl2-modules → indispensable pour l’authentification Gmail



📁 2. Créer le fichier d’authentification Gmail

Créer le fichier /etc/mail/authinfo/gmail-auth :

sudo mkdir -p /etc/mail/authinfo
sudo nano /etc/mail/authinfo/gmail-auth

Contenu :

AuthInfo:smtp.gmail.com "U:root" "I:tonmail@gmail.com" "P:mot_de_passe_application" "M:LOGIN"

⚠️ Remplace :

  • tonmail@gmail.com → ton adresse Gmail
  • mot_de_passe_applicationmot de passe d’application Gmail (pas ton mot de passe normal)

Ensuite, créer la base de données Sendmail :

sudo makemap hash /etc/mail/authinfo/gmail-auth < /etc/mail/authinfo/gmail-auth

Puis sécuriser les permissions :

sudo chmod 600 /etc/mail/authinfo/gmail-auth*

⚙️ 3. Modifier la configuration Sendmail

Édite le fichier /etc/mail/sendmail.mc :

sudo nano /etc/mail/sendmail.mc

Ajoute (ou vérifie) les lignes suivantes avant MAILER_DEFINITIONS :

define(`SMART_HOST', `smtp.gmail.com')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo/gmail-auth.db')dnl

💡 Astuce : laisse les autres lignes par défaut (notamment MAILER_DEFINITIONS et MAILER(local) MAILER(smtp) à la fin du fichier).



🧱 4. Générer le fichier de configuration actif

Compile le fichier .mc en .cf :

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

🔁 5. Redémarrer Sendmail

sudo systemctl restart sendmail
sudo systemctl status sendmail

Tu dois voir active (running)



📤 6. Test d’envoi de mail

Teste un envoi avec mail :

echo "Ceci est un test d'envoi via Gmail." | mail -s "Test Sendmail Gmail" tonmail@gmail.com

Tu peux vérifier les logs :

sudo tail -f /var/log/mail.log

Si tout est correct, tu verras :

... to=<tonmail@gmail.com>, relay=smtp.gmail.com [173.194.xxx.xxx], dsn=2.0.0, stat=Sent (OK)

Et tu recevras le mail 🎉



🧠 Notes importantes

  • Pour Gmail, tu dois utiliser un mot de passe d’application : 👉 https://myaccount.google.com/apppasswords

  • Si tu changes le mot de passe d’application, n’oublie pas de mettre à jour /etc/mail/authinfo/gmail-auth puis de relancer :

    sudo makemap hash /etc/mail/authinfo/gmail-auth < /etc/mail/authinfo/gmail-auth
    sudo systemctl restart sendmail
    
  • Pour tester manuellement avec sendmail -v :

    echo "Subject: Test direct Sendmail" | sendmail -v tonmail@gmail.com