Comment configurer Sendmail sur Ubuntu ?

Publié 21 janvier 2026

Problème : Configurer Sendmail sur Ubuntu

Sendmail est un agent de transfert de courrier pour les systèmes Linux, mais sa configuration sur Ubuntu peut s'avérer difficile. Une configuration correcte est nécessaire pour que les e-mails soient envoyés et reçus correctement, évitant ainsi les problèmes de livraison ou les failles de sécurité.

Installation de Sendmail sur Ubuntu

Étapes pour installer Sendmail

Pour installer Sendmail sur Ubuntu :

  1. Ouvrez un terminal sur votre système Ubuntu.

  2. Installez Sendmail en utilisant apt-get :

    sudo apt-get install sendmail
  3. Saisissez votre mot de passe système lorsqu'il vous est demandé.

  4. Attendez la fin de l'installation.

  5. Vérifiez que Sendmail est installé :

    sendmail -v

    Cette commande affiche la version de Sendmail s'il est correctement installé.

  6. Vérifiez l'état du service Sendmail :

    sudo systemctl status sendmail

    Cette commande indique si Sendmail est actif et en cours d'exécution.

Après ces étapes, Sendmail sera installé sur votre système Ubuntu.

Conseil: Configuration de Sendmail

Après avoir installé Sendmail, vous devrez peut-être le configurer. Pour cela, modifiez le fichier de configuration de Sendmail :

sudo nano /etc/mail/sendmail.mc

Effectuez vos modifications, puis reconstruisez la configuration :

sudo make -C /etc/mail
sudo systemctl restart sendmail

Configuration de base de Sendmail

Exécution de sendmailconfig

La commande sendmailconfig permet de définir la configuration de base de Sendmail. Voici ce qu'il faut savoir sur cette commande :

  • Pour exécuter sendmailconfig, utilisez :

    sudo sendmailconfig
  • Cette commande met à jour les fichiers de configuration de Sendmail.

  • Elle pose des questions sur votre configuration de messagerie et crée la configuration en fonction de vos réponses.

  • L'outil vise à créer une configuration fonctionnelle pour les configurations courantes.

  • Elle met à jour des fichiers comme /etc/mail/sendmail.cf et /etc/mail/submit.cf.

  • La commande peut vous demander le nom de domaine complet (FQDN) de votre système.

  • Elle peut vous inviter à choisir entre les protocoles IPv4 et IPv6.

  • Vous devrez peut-être confirmer les modifications apportées aux fichiers de configuration existants.

L'objectif principal de cette étape de configuration initiale est de :

  • Créer une configuration de base fonctionnelle pour Sendmail.

  • Aider les utilisateurs qui ne connaissent pas la structure de configuration de Sendmail.

  • Créer un point de départ pour d'autres personnalisations si nécessaire.

  • Réduire les risques d'erreur de configuration qui pourraient causer des problèmes de sécurité ou de fonctionnement.

N'oubliez pas que même si sendmailconfig constitue un bon point de départ, vous devrez peut-être apporter d'autres modifications pour des besoins spécifiques ou des configurations avancées.

Conseil: Sauvegardez votre configuration

Avant d'exécuter sendmailconfig, il est recommandé de sauvegarder vos fichiers de configuration Sendmail existants. Vous pouvez le faire en copiant les principaux fichiers de configuration :

sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.backup
sudo cp /etc/mail/submit.cf /etc/mail/submit.cf.backup

Cela vous permet de revenir aux modifications précédentes si nécessaire.

Localisation et modification des fichiers de configuration Sendmail

Fichiers de configuration principaux

Sendmail utilise plusieurs fichiers de configuration pour contrôler son comportement. Les principaux fichiers à connaître sont :

  • /etc/mail/sendmail.conf : Ce fichier contient les paramètres généraux de Sendmail. Il contrôle des options comme la taille maximale des messages, le nombre de processus de file d'attente et l'emplacement des répertoires Sendmail.

  • /etc/cron.d/sendmail : Ce fichier configure les tâches planifiées pour Sendmail. Il contient des entrées pour l'exécution de la file d'attente et la mise à jour des bases de données de Sendmail à intervalles réguliers.

  • /etc/mail/sendmail.mc : Il s'agit du fichier de configuration principal de Sendmail. Il est écrit en langage de macros m4 et définit la plupart des paramètres opérationnels de Sendmail. Après avoir modifié ce fichier, vous devez le compiler en sendmail.cf pour que les modifications prennent effet.

Pour modifier ces fichiers :

  1. Ouvrez un terminal sur votre système Ubuntu.

  2. Utilisez un éditeur de texte avec des privilèges root pour ouvrir le fichier. Par exemple :

    sudo nano /etc/mail/sendmail.mc
  3. Effectuez vos modifications dans le fichier.

  4. Enregistrez le fichier et quittez l'éditeur.

  5. Si vous avez modifié sendmail.mc, compilez-le en sendmail.cf :

    sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
  6. Redémarrez Sendmail pour appliquer les modifications :

    sudo systemctl restart sendmail

N'oubliez pas de sauvegarder ces fichiers avant d'apporter des modifications. Cela vous permet de revenir à une configuration fonctionnelle si nécessaire.

Conseil: Utilisez le contrôle de version pour la gestion de la configuration

Pensez à utiliser un système de contrôle de version comme Git pour gérer vos fichiers de configuration Sendmail. Cette approche vous permet de suivre les modifications, de revenir facilement aux versions précédentes et de collaborer avec les membres de l'équipe lors de la gestion de configurations complexes. Voici un flux de travail de base :

  1. Initialisez un dépôt Git dans votre répertoire /etc/mail :

    cd /etc/mail
    sudo git init
  2. Ajoutez vos fichiers de configuration au dépôt :

    sudo git add sendmail.mc sendmail.cf
  3. Validez vos modifications :

    sudo git commit -m "Validation initiale de la configuration Sendmail"
  4. Avant d'effectuer des modifications, créez une nouvelle branche :

    sudo git checkout -b nouvelles-modifications-config
  5. Après avoir effectué et testé vos modifications, validez-les :

    sudo git commit -am "Mise à jour des paramètres de relais SMTP"
  6. Si les modifications fonctionnent comme prévu, fusionnez-les dans la branche principale :

    sudo git checkout main
    sudo git merge nouvelles-modifications-config

Cette méthode offre un filet de sécurité et un historique clair de vos modifications de configuration.

Test de la configuration Sendmail

Envoi d'un e-mail de test

Après avoir configuré Sendmail, testez s'il fonctionne correctement. Vous pouvez envoyer un e-mail de test en utilisant la ligne de commande. Voici comment procéder :

  1. Ouvrez un terminal sur votre système Ubuntu.

  2. Utilisez cette commande pour envoyer un e-mail de test :

    echo "Ceci est un e-mail de test de Sendmail" | sendmail -v votre_email@exemple.com

    Remplacez "votre_email@exemple.com" par votre adresse e-mail.

  3. L'option -v affiche le processus de transmission de l'e-mail.

  4. Vérifiez votre boîte de réception pour le message de test.

Pour confirmer la livraison de l'e-mail :

  1. Recherchez l'e-mail de test dans votre boîte de réception.

  2. Si vous ne le voyez pas, vérifiez votre dossier spam.

  3. Consultez les en-têtes de l'e-mail pour confirmer qu'il a été envoyé via votre serveur Sendmail.

  4. Examinez les journaux de Sendmail pour détecter d'éventuels messages d'erreur :

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

    Cette commande affiche les entrées de journal en temps réel.

Si l'e-mail de test n'arrive pas ou si vous constatez des erreurs dans les journaux, vérifiez votre configuration Sendmail ou vérifiez vos paramètres réseau.

Conseil: Utilisation d'un script de test

Créez un simple script PHP pour tester la fonctionnalité de Sendmail :

<?php
$to = "votre_email@exemple.com";
$subject = "E-mail de test de Sendmail";
$message = "Ceci est un e-mail de test envoyé à l'aide de PHP et Sendmail.";
$headers = "From: webmaster@exemple.com";

if(mail($to, $subject, $message, $headers)) {
    echo "E-mail envoyé avec succès.";
} else {
    echo "Échec de l'envoi de l'e-mail.";
}
?>

Enregistrez ce script et exécutez-le via votre serveur web pour tester l'intégration de Sendmail avec PHP.

Dépannage de la livraison des e-mails

Si votre e-mail de test n'arrive pas, essayez ces étapes :

  1. Vérifiez vos paramètres de pare-feu pour vous assurer que le port 25 (SMTP) est ouvert.

  2. Vérifiez que vos paramètres DNS sont corrects.

  3. Vérifiez la file d'attente Sendmail pour les messages bloqués :

    sudo mailq
  4. Si des messages sont bloqués, essayez de vider la file d'attente :

    sudo sendmail -q

Ces étapes peuvent vous aider à identifier les problèmes courants empêchant la livraison des e-mails.

Ajout d'un relais SMTP à Sendmail

Configuration de l'authentification SMTP

Pour ajouter un relais SMTP à Sendmail, vous devez configurer l'authentification SMTP. Ce processus implique la création d'un répertoire d'authentification et la génération d'une base de données d'authentification. Voici comment procéder :

  1. Créez un répertoire d'authentification :

    sudo mkdir /etc/mail/auth
    sudo chmod 700 /etc/mail/auth

    Cela crée un répertoire pour stocker les informations d'authentification.

  2. Créez un fichier pour stocker vos identifiants de serveur SMTP :

    sudo nano /etc/mail/auth/client-info
  3. Ajoutez les informations de votre serveur SMTP au fichier :

    AuthInfo:votre.serveur.smtp "U:nom_utilisateur" "P:mot_de_passe" "M:PLAIN"

    Remplacez "votre.serveur.smtp", "nom_utilisateur" et "mot_de_passe" par vos informations réelles de serveur SMTP.

  4. Générez la base de données d'authentification :

    sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-info

    Cette commande crée un fichier de base de données que Sendmail peut utiliser.

  5. Définissez les permissions correctes pour les fichiers :

    sudo chmod 600 /etc/mail/auth/client-info
    sudo chmod 600 /etc/mail/auth/client-info.db

    Cela restreint l'accès à ces fichiers.

Après avoir terminé ces étapes, vous aurez configuré l'authentification pour le relais SMTP. L'étape suivante consiste à modifier votre configuration Sendmail pour utiliser cette authentification lors de l'envoi d'e-mails via votre serveur SMTP.

Conseil: Sécurisation de vos informations d'authentification

Pour améliorer la sécurité, vous pouvez chiffrer votre fichier client-info :

  1. Installez GPG :

    sudo apt-get install gnupg
  2. Générez une clé GPG :

    gpg --gen-key
  3. Chiffrez le fichier client-info :

    gpg -e -r "Votre Nom" /etc/mail/auth/client-info
  4. Supprimez le fichier original :

    sudo shred -u /etc/mail/auth/client-info

Cette approche ajoute un chiffrement à vos identifiants SMTP, les rendant plus sûrs.

Modification du fichier sendmail.mc

Ajout de la configuration SMTP

Pour configurer Sendmail afin qu'il utilise votre relais SMTP, vous devez modifier le fichier sendmail.mc. Ce fichier contient les paramètres principaux de Sendmail. Voici comment ajouter la configuration SMTP :

  1. Ouvrez le fichier sendmail.mc :

    sudo nano /etc/mail/sendmail.mc
  2. Ajoutez ces lignes avant la section MAILER_DEFINITIONS :

    define(`SMART_HOST',`votre.serveur.smtp')dnl
    define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnl

    Remplacez 'votre.serveur.smtp' par l'adresse de votre serveur SMTP.

  3. Enregistrez et fermez le fichier.

Après avoir ajouté ces lignes, vous devez mettre à jour le fichier sendmail.cf. Sendmail lit ce fichier au démarrage. Pour le mettre à jour :

  1. Exécutez cette commande :

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

    Cette commande convertit le fichier sendmail.mc en sendmail.cf.

  2. Redémarrez Sendmail pour appliquer les modifications :

    sudo systemctl restart sendmail

Ces modifications indiquent à Sendmail d'utiliser votre serveur SMTP comme hôte intelligent, d'activer les méthodes d'authentification et d'utiliser les informations d'authentification que vous avez configurées précédemment.

Testez votre configuration après avoir effectué ces modifications pour vous assurer que Sendmail fonctionne correctementavec votre relais SMTP.

Conseil: Vérification de la configuration SMTP

Après avoir modifié le fichier sendmail.mc et redémarré Sendmail, vous pouvez vérifier la configuration SMTP en consultant les journaux de messagerie. Utilisez la commande suivante pour afficher les entrées de journal les plus récentes :

sudo tail -f /var/log/maillog

Recherchez les lignes indiquant une connexion réussie à votre serveur SMTP et tout message d'authentification. Cela peut vous aider à identifier s'il y a des problèmes avec votre configuration.

Redémarrage du service Sendmail

Application des modifications de configuration

Après avoir modifié votre configuration Sendmail, redémarrez le service Sendmail pour appliquer ces modifications. Voici comment procéder :

  1. Redémarrez le démon Sendmail :

    sudo systemctl restart sendmail
  2. Pour les anciennes versions d'Ubuntu, utilisez :

    sudo service sendmail restart

Pour vérifier si Sendmail fonctionne avec les nouveaux paramètres :

  1. Vérifiez l'état du service Sendmail :

    sudo systemctl status sendmail
  2. Recherchez "Active: active (running)" dans la sortie.

  3. Consultez les journaux Sendmail pour détecter les messages d'erreur :

    sudo tail -f /var/log/mail.log
  4. Envoyez un e-mail de test pour confirmer la nouvelle configuration :

    echo "E-mail de test" | sendmail -v votre_email@exemple.com
  5. Surveillez la file d'attente de messagerie pour voir si les e-mails sont en cours de traitement :

    mailq

Si vous constatez des erreurs ou si les e-mails ne sont pas envoyés, vérifiez vos modifications de configuration et consultez les fichiers journaux pour plus d'informations.

Testez votre configuration Sendmail après toute modification de configuration pour vous assurer qu'elle fonctionne correctement.

Conseil: Dépannage des problèmes de démarrage de Sendmail

Si Sendmail ne démarre pas après les modifications de configuration, essayez ces étapes :

  1. Vérifiez les erreurs de syntaxe dans votre fichier de configuration :
    sendmail -bt < /dev/null
  2. Examinez le journal Sendmail pour des messages d'erreur spécifiques :
    sudo grep sendmail /var/log/syslog
  3. Vérifiez les permissions sur les fichiers de configuration :
    sudo ls -l /etc/mail/sendmail.cf

Sécurisation de Sendmail sur Ubuntu

Bonnes pratiques pour la sécurité de Sendmail

Pour sécuriser votre installation Sendmail sur Ubuntu, suivez ces pratiques :

Configuration de SPF (Sender Policy Framework) :

  1. Créez un enregistrement SPF dans les paramètres DNS de votre domaine :

    v=spf1 ip4:adresse_ip_serveur ~all

    Remplacez "adresse_ip_serveur" par l'adresse IP de votre serveur.

  2. Installez le filtre SPF :

    sudo apt-get install spf-milter
  3. Ajoutez cette ligne à votre fichier sendmail.mc :

    INPUT_MAIL_FILTER(`spf', `S=local:/var/run/spfd.sock, F=T, T=R:2m')
  4. Redémarrez Sendmail pour appliquer les modifications.

Configuration de DKIM (DomainKeys Identified Mail) :

  1. Installez OpenDKIM :

    sudo apt-get install opendkim opendkim-tools
  2. Générez les clés DKIM :

    sudo opendkim-genkey -D /etc/dkimkeys/ -d votredomaine.com -s default
  3. Ajoutez ceci à votre fichier sendmail.mc :

    INPUT_MAIL_FILTER(`opendkim', `S=local:/var/run/opendkim/opendkim.sock, F=T, T=R:2m')
  4. Configurez OpenDKIM et redémarrez le service.

Mise en œuvre de mesures anti-spam :

  1. Installez SpamAssassin :

    sudo apt-get install spamassassin
  2. Ajoutez ceci à votre fichier sendmail.mc :

    MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
  3. Configurez SpamAssassin et redémarrez le service.

  4. Mettez à jour vos règles de spam :

    sudo sa-update

Reconstruisez votre fichier sendmail.cf et redémarrez Sendmail après avoir effectué ces modifications. Ces mesures contribuent à protéger votre système de messagerie contre le spam et les tentatives d'usurpation d'identité.

Conseil: Audits de sécurité réguliers

Effectuez des audits de sécurité sur votre configuration Sendmail :

  1. Vérifiez les relais ouverts :

    telnet localhost 25
    HELO exemple.com
    MAIL FROM: test@exemple.com
    RCPT TO: test@exemple.com

    Si cela réussit, votre serveur pourrait être un relais ouvert.

  2. Examinez vos listes de contrôle d'accès dans /etc/mail/access.

  3. Maintenez votre système et Sendmail à jour avec les derniers correctifs de sécurité.