Configuration d’un Serveur SMTP – Un Guide Étape par Étape

On février 14, 2025
11min read
Zakhar Yung Technical Content Writer @Mailtrap
Set up smtp server

Dans notre article de blog sur les meilleurs serveurs SMTP gratuits, nous avons discuté des solutions cloud pour l’envoi d’emails. Ces solutions sont assez courantes pour des projets de toutes tailles.

Mais que faire si vous ne voulez pas utiliser les services de relais SMTP fournis par Gmail ou ses alternatives ? Dans cet article, nous vous apprendrons comment configurer un serveur SMTP local et vous libérer de toute dépendance pour l’envoi d’emails.

Prêt à livrer vos emails ?
Essayez Mailtrap Gratuitement

Avez-vous vraiment besoin d’un serveur SMTP ?

L’utilisation d’un serveur SMTP sortant est la méthode traditionnelle d’envoi d’emails. Un serveur SMTP est un ordinateur ou une application qui envoie des emails en utilisant le protocole SMTP (Simple Mail Transfer Protocol).

Une solution alternative consiste à contourner le serveur SMTP et envoyer des emails directement à destination. C’est ce qu’on appelle l’Envoi Direct et vous pouvez l’utiliser via des logiciels de messagerie spécifiques.

L’Envoi Direct n’est cependant pas très fiable, et voici pourquoi :

  • Il ne peut pas être utilisé si le port 25 est bloqué par votre Fournisseur d’Accès Internet (FAI).
  • Il n’est pas adapté à l’envoi d’emails en masse en raison des connexions multiples à de nombreux serveurs différents.
  • Il ne peut pas envoyer d’emails non personnalisés.
  • Il peut être bloqué par les filtres d’email car les emails ne sont pas envoyés depuis un serveur SMTP standard.

Alors, laissons de côté l’Envoi Direct et voyons pourquoi quelqu’un voudrait gérer son propre serveur SMTP.

Avantages et inconvénients d’un serveur SMTP local

AvantagesInconvénients
Pas de limite quotidienne ou horaire sur le nombre d’emails sortants
Rapports instantanés 
Confidentialité et contrôle de tous vos emails sortants
Pas d’IP partagée
La gestion d’un serveur SMTP local prend du temps et des efforts
Le taux de rebond peut augmenter de 20-30%

Pour résumer la comparaison, voici le commentaire que nous avons trouvé sur Reddit :

Commentaire Reddit sur la difficulté de configurer un serveur SMTP

Source: Reddit

Les solutions d’envoi basées sur le cloud comme l’Email API/SMTP de Mailtrap offrent également tous les avantages énumérés ci-dessus. Ces solutions tierces sont plus sécurisées tout en offrant un contrôle complet sur votre infrastructure d’email.

Cependant, elles conservent toujours le facteur de dépendance. Donc, si vous voulez éliminer la dépendance, vous pouvez bien sûr configurer un serveur SMTP en utilisant un logiciel spécifique.

Prérequis pour un serveur SMTP local

Il n’y a pas d’exigences spécifiques jusqu’à présent. Néanmoins, vous devez vous préparer aux points suivants :

  • Certains FAI peuvent bloquer le port 25. Vous pouvez résoudre ce problème en contactant votre fournisseur FAI et en découvrant quelles limitations ils peuvent imposer. De plus, vous devez demander le serveur DNS correct et l’autorisation pour la résolution des enregistrements MX.
  • Pour les emails en masse, vous devriez probablement opter pour un domaine et une adresse IP fixe associée — cela augmentera votre résistance aux filtres anti-spam.

Configuration rapide d’un serveur SMTP

Maintenant, passons à la réalisation. Puisque vous allez configurer un serveur SMTP sur votre ordinateur, il est crucial de tenir compte du système d’exploitation ou OS. Nous allons donc expliquer comment configurer un serveur SMTP local sur les machines macOS, Windows et Linux.

Note importante : Si vous envoyez des emails test à une adresse email réelle, vous pourriez ne pas les trouver dans la boîte de réception. N’oubliez pas de vérifier votre dossier spam. Les fournisseurs de services de messagerie comme Gmail, Yahoo, Outlook et autres sont méfiants des nouveaux agents de transfert d’email (MTA).

Assurez-vous de sauvegarder le fichier de configuration Postfix avant d’effectuer des modifications.

Comment configurer un serveur SMTP local sur macOS

Auparavant, macOS Server était une application puissante que les gens utilisaient pour gérer les services réseau et, vous l’aurez deviné, configurer des serveurs de messagerie. Il utilisait Postfix (un MTA) par défaut.

Progressivement, Apple a réduit les fonctionnalités de macOS Server et, en 2022, l’a complètement abandonné. L’application ne sera plus mise à jour pour correspondre aux nouvelles versions de macOS.

Les versions existantes de macOS Server sont compatibles avec Monterey et les versions antérieures de macOS. Cela signifie que vous pouvez toujours l’utiliser pour votre configuration de serveur SMTP.

Note : La configuration peut différer légèrement selon la version de l’OS que vous utilisez. Dans le tutoriel ci-dessous, nous allons configurer un serveur SMTP local sur macOS Big Sur. Pour les versions antérieures ou ultérieures de macOS, référez-vous au dépôt GitHub.

Postfix devrait être préinstallé sur votre machine. Si ce n’est pas le cas, vous pouvez l’installer en utilisant un gestionnaire de paquets tiers comme Homebrew ou MacPorts. Pour Homebrew, exécutez la commande suivante :

brew install postfix

Ensuite, créez un nouveau fichier de configuration en utilisant le code suivant :

sudo nano /etc/postfix/main.cf

Si Postfix est déjà installé, vous pouvez y accéder en exécutant :

sudo vim /etc/postfix/main.cf

Indiquez à Postfix quel nom il doit utiliser pour s’identifier auprès des autres serveurs de messagerie. Ajoutez les lignes suivantes :

myhostname = john.exemple.com
myorigin = exemple.com

Si votre nom d’utilisateur local est John, le courrier apparaîtra comme provenant de john@exemple.com.

Maintenant, il est temps de définir l’hôte de relais. C’est la machine qui acceptera les emails après authentification et les relayera vers le serveur SMTP.

relayhost = mail.exemple.com:25

L’étape suivante consiste à ajouter l’IP du réseau local, définir les paramètres TLS et activer SASL. Ce dernier nécessite un fichier de configuration supplémentaire dans lequel le mot de passe est stocké.

Créez le fichier sasl_passwd :

sudo vim /etc/postfix/sasl_passwd

Ajoutez la ligne suivante :

mail.example.com:25 john@exemple.com:<votre mot de passe>

Sauvegardez le fichier avec :

sudo postmap /etc/postfix/sasl_passwd

Maintenant retournez à votre fichier main.cf.

L’exemple de code complet ressemblera à ceci :

myhostname = mailserver.my.home
myorigin = $myhostname

mydestination = $myhostname, mailserver.my.home, localhost.localdomain, localhost
relayhost = mail.exemple.com:25
mynetworks = 127.0.0.0/8, [::1]/128

smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit
recipient_delimiter = +
tls_random_source = dev:/dev/urandom
smtpd_tls_ciphers = medium

inet_interfaces = all
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/certs/mailserver.my.home.crt
smtpd_tls_key_file=/etc/ssl/private/mailserver.my.home.key
smtpd_tls_security_level=may

smtp_tls_CApath=/opt/homebrew/etc/ssl/
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated permit_inet_interfaces defer_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

sender_canonical_maps = hash:/etc/postfix/sender_canonical

virtual_maps = hash:/etc/postfix/virtual

home_mailbox = Maildir/

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

Maintenant, nous devons configurer Postfix pour qu’il démarre automatiquement au démarrage et le redémarrer. Pour cela, nous devons copier le plist principal de Postfix hors du dossier Système.

sudo cp /System/Library/LaunchDaemons/com.apple.postfix.master.plist /Library/LaunchDaemons/org.postfix.custom.plist 

Ensuite, nous devons exécuter :

sudo vi /Library/LaunchDaemons/org.postfix.custom.plist

La valeur Com.apple.postfix.master doit être remplacée par org.postfix.custom.

Maintenant, nous devons supprimer ces lignes pour empêcher la sortie après 60s

<string>-e</string>
<string>60</string>

et ajouter celles-ci avant </dict>

<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>

Il est temps de relancer le daemon

sudo launchctl unload /Library/LaunchDaemons/org.postfix.custom.plist
sudo launchctl load /Library/LaunchDaemons/org.postfix.custom.plist

et vérifier s’il a démarré.

sudo launchctl list | grep org.postfix

Ensuite, vous pouvez vérifier le port d’écoute 25

sudo lsof -i -P | grep LISTEN 

et vérifier le journal.

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

Comment configurer un serveur SMTP sur Linux

La plupart des distributions Linux sont livrées avec les deux implémentations SMTP les plus courantes : Sendmail et Postfix. Sendmail a une conception assez complexe et une architecture moins sécurisée ; c’est pourquoi nous avons à nouveau choisi Postfix.

Installation

Si vous n’avez pas Postfix sur votre machine, vous devrez l’installer. Vous aurez également besoin du package Mailutils, qui inclut les programmes nécessaires au fonctionnement de Postfix :

sudo apt install mailutils postfix

Dans la fenêtre de Configuration de Postfix, vous devrez choisir la configuration de la messagerie Internet Site. Enfin, vous devrez spécifier le nom de la messagerie du système. Il doit être le même que le nom que vous avez attribué au nom de domaine pointant vers votre serveur. Utilisons exemple.com.

Configuration

Maintenant, configurons Postfix pour traiter les demandes d’envoi d’emails depuis localhost. Pour cela, vous devez modifier le fichier de configuration principal main.cf :

sudo nano /etc/postfix/main.cf

Faites défiler jusqu’à la ligne inet_interfaces = all et remplacez-la par inet_interfaces = loopback-only. Cela indiquera à Postfix d’accepter les emails entrants uniquement sur localhost.

Vous devez également modifier mydestination, qui spécifie la liste des domaines. Il devrait ressembler à ceci :

mydestination = $myhostname, localhost.$exemple.com, $exemple.com

Sauvegardez le fichier et redémarrez Postfix.

sudo systemctl restart postfix

Enfin, essayez d’envoyer un email test.

echo "Corps de l'email test" | mail -s "Ligne d'objet de l'email test" adresse_email_du_destinataire

Comment configurer un serveur relais SMTP local sur Windows

Pour configurer un serveur SMTP sur Windows, vous avez deux options principales :

  • Utiliser des options logicielles comme MailEnable, Apache James, ou hMailServer. Dans ce tutoriel, nous inclurons les étapes pour hMailServer car c’est l’option la plus populaire ;
  • Utiliser les Services d’information Internet (IIS) de Windows sur le serveur BizTalk ou d’autres serveurs avec IIS installé.

Installation avec hMailServer

Téléchargez la dernière version de hMailServer et installez-la. Au début de l’installation, vous devez faire attention aux points suivants :

  • Dans la fenêtre Select Components, assurez-vous que l’installation complète est choisie. Les composants Serveur et Administratif doivent être cochés.
  • Dans la fenêtre Select database server type, cochez le moteur de base de données intégré.
  • Dans la fenêtre hMailServer Security, créez un mot de passe pour l’utilisateur par défaut.

Une fois installé, il est temps d’exécuter et de configurer hMailServer.

  • Cliquez sur ‘Connect’ dans la fenêtre de démarrage et entrez le mot de passe que vous avez défini lors de l’installation.
  • Cliquez sur ‘Add domain’ et entrez votre nom de domaine dans le champ correspondant. D’ailleurs, vous pouvez utiliser un nom de domaine fictif puisque le réel n’est pas requis pour envoyer des emails. Mais, dans ce cas, assurez-vous que le domaine fictif n’existe pas réellement. Cliquez sur ‘Save’ et vous verrez votre domaine créé dans l’onglet de gauche.
  • Sélectionnez le dossier ‘Accounts’ dans l’onglet de gauche et cliquez sur ‘Add…’ pour en configurer un. Tout ce que vous devez faire ici est d’entrer un nom dans le champ ‘Address’. Cela configurera votre adresse email. En option, vous pouvez spécifier un mot de passe. Cliquez sur ‘Save’ et passez à ‘Settings’ dans l’onglet de gauche.
  • Développez le fil ‘Settings’ et sélectionnez ‘Protocols’. Décochez POP3 et IMAP. Pour en savoir plus sur ces protocoles, lisez notre comparaison IMAP vs POP3 vs SMTP. Ensuite, cliquez sur ‘Save’.
  • Maintenant, sélectionnez ‘Advanced’ dans le fil ‘Settings’ et entrez localhost dans le champ ‘Domaine par défaut’Default domain’ dans l’onglet de droite. Cliquez sur ‘Save’. Pour finir avec les paramètres Avancés, sélectionnez ‘Auto-ban’ et décochez la case ‘Enabled’. Cliquez sur ‘Save’.
  • Enfin, développez le fil ‘Utilities’ et sélectionnez ‘Diagnostics’. Sélectionnez votre domaine pour exécuter les tests et cliquez sur ‘Start’. Nous ne nous intéressons pas à tous les tests, juste à ‘Collect server details’ et ‘Test outbound port’. Ceux-ci devraient être marqués en vert.

Et voilà. Maintenant vous pouvez envoyer votre email de test. Cela peut être fait avec PowerShell – et c’est rapide et facile. Pour en savoir plus à ce sujet, lisez notre article de blog sur l’envoi d’emails depuis PowerShell. Exécutez la ligne suivante (n’oubliez pas de saisir vos données) :

Send-MailMessage -To "<adresse_email_du_destinataire>" -From "<votre_adresse_email>"  -Subject "Votre objet d'email" -Body "Votre texte de corps d'email" -Credential "<votre_nom_utilisateur>" -SmtpServer "127.0.0.1" -Port 25

Dans la fenêtre contextuelle, vous devrez entrer votre mot de passe et ensuite vous serez prêt à partir.

Installation avec IIS

La configuration du relais SMTP avec IIS nécessite n’importe quelle version de Windows Server. Nous allons détailler le processus d’installation général. Pour les détails sur votre version spécifique, consultez la documentation Microsoft.

Pour installer le serveur SMTP, vous devrez suivre les étapes suivantes :

  • Accédez à votre ‘Server Manager’ et sélectionnez ‘Dashboard’ dans la barre de navigation gauche ;
  • Choisissez ‘Add roles and features’ pour démarrer l’assistant. Cela vous permettra d’étendre la fonctionnalité du serveur et de le configurer pour effectuer des tâches spécifiques ;
  • Vous verrez la fenêtre ‘Before you begin’ qui inclut des informations importantes sur l’installation. Appuyez sur ‘Next’ ;
  • Choisissez ‘Role-based or feature-based installation’ et appuyez sur ‘Next’ pour continuer avec le processus de configuration ;
  • L’étape suivante consiste à sélectionner le serveur que vous souhaitez utiliser pour l’installation SMTP. À ce stade, vous pouvez sélectionner les serveurs que vous avez ajoutés précédemment. Un serveur local est l’option par défaut ici ;
  • Dans ‘Server roles’, vous pouvez appuyer sur ‘Next’ sans choisir d’options ;
  • L’onglet ‘Features’ est l’endroit où nous sélectionnons le serveur SMTP. Il se peut qu’on vous demande de configurer des fonctionnalités supplémentaires du serveur. Cliquez sur ‘Next’ ;
  • Une fois cela fait, vous verrez la fenêtre de confirmation. Cochez ‘Restart the destination server automatically if required’ pour vous assurer que le serveur redémarre après l’installation. Cela lancera l’installation. Appuyez sur ‘Close’ lorsque le processus est terminé.

Après l’installation, il est nécessaire de configurer le Serveur Virtuel SMTP. Pour cela, nous avons besoin d’IIS 6.0 Manager.

  • La première étape est d’ouvrir l’IIS Manager. Cela peut être fait en recherchant inetmgr6.exe dans Start ou en accédant Server Manager et en choisissant ‘IIS Manager’ dans l’onglet Tools ;
  • Développez le nom de l’ordinateur pour afficher une vue arborescente du serveur. Faites un clic droit sur ‘SMTP Virtual Server #1’ et choisissez ‘Properties’ ;
  • Choisissez le bouton ‘Relay’ dans l’onglet Access pour modifier les paramètres de relais de votre serveur SMTP ;
  • L’étape suivante consiste à choisir les adresses IP qui seront autorisées à relayer à travers ce serveur SMTP. Pour accorder l’accès uniquement à votre ordinateur, appuyez sur ‘Add’, tapez ‘127.0.0.1’ et appuyez sur ‘OK’. Pour ajouter d’autres ordinateurs, vous devrez entrer leurs adresses IP. Cochez ‘Enable logging’ pour recevoir des enregistrements des messages email pour un dépannage facile.
  • Allez dans l’onglet Delivery, sélectionnez ‘Outbound Security’ et choisissez parmi les méthodes d’authentification. Vous avez quatre options : Anonymous access (Accès anonyme), basic authentication (authentification de base), Integrated Windows Authentication (Fenêtre d’Authentification intégrée) et TLS encryption (chiffrement TLS). Si vous utilisez le serveur à des fins de test, il est recommandé d’utiliser l’accès anonyme pour s’assurer que la configuration ne échoue pas à la commande AUTH ;
  • Dans le même onglet, choisissez ‘Outbound connections’. Le port TCP ou SMTP par défaut est 25. Vous devez vous assurer qu’il n’est pas bloqué. Si vous utilisez un autre port, vous devez vérifier s’il est ouvert dans votre pare-feu ;
  • Maintenant sélectionnez ‘Adanced’ pour étendre les options avancées de votre Serveur Virtuel SMTP. Généralement, Fully Qualified Domain Names seront listés ici. Vous devez laisser le champ Smart Host vide. Gardez à l’esprit que certains fournisseurs réseau peuvent exiger le Smart Host — un serveur qui gérera la livraison ;
  • Appuyez sur ‘OK’ et redémarrez le serveur pour appliquer les paramètres.

Une fois que vous avez terminé ces étapes, vous devez tester les paramètres avec Telnet. Si vous pouvez envoyer des emails avec succès, cela signifie que vous avez un serveur email SMTP fonctionnel.

Un serveur SMTP est-il bon pour les tests ?

Dans la plupart des cas, les gens configurent des serveurs SMTP locaux à des fins de test. Si vous développez une application qui enverra des emails, vous devrez tester cette fonction, et un véritable serveur SMTP fonctionnant sur votre machine locale pourrait sembler être une bonne option. Mais l’est-ce vraiment ?

D’un côté, l’installation et la configuration d’un serveur SMTP local n’est pas problématique. Cependant, il existe une bien meilleure solution.

Mailtrap est une Plateforme d’Email Delivery qui couvre tous vos besoins liés aux emails. Elle vous permet de tester, envoyer et contrôler votre infrastructure email à travers une seule plateforme.

Au lieu de longues configurations du serveur SMTP local, vous pouvez utiliser l’Email Testing de Mailtrap — une Sandbox d’Email avec un environnement sûr pour tester, inspecter et déboguer les emails. Tout cela peut être fait en phase de staging, ce qui signifie que votre application peut envoyer un email, mais il ne sera pas livré au destinataire réel.

Essayez Mailtrap Maintenant

À la place, l’email test ira dans la boîte de réception de la Sandbox. Ainsi, il n’y a aucun risque de spammer les utilisateurs.

Depuis la boîte de réception, il est possible de valider le HTML/CSS de votre email et de voir rapidement les résultats d’analyse spam qui sont vérifiés par le filtre Apache SpamAssassin.

Page d'Analyse Spam de l’Email Testing de Mailtrap

Le processus d’installation est simple. Tout ce que vous avez à faire est de mettre à jour vos paramètres SMTP avec les identifiants pertinents :

  • Hôte : sandbox.smtp.mailtrap.io
  • Port : 25 ou 465 ou 587 ou 2525
  • Nom d’utilisateur : unique pour chaque boîte de réception
  • Mot de passe : unique pour chaque boîte de réception

Alternativement, vous pouvez copier-coller un extrait de code prêt à l’emploi qui apparaît une fois que le langage pertinent est sélectionné dans le menu déroulant.

Intégration API de l’Email Testing de Mailtrap

Lorsque votre application passe en production, vous pouvez utiliser l’Email API/SMTP de Mailtrap pour atteindre les boîtes de réception des destinataires. C’est une infrastructure d’email qui offre des taux de délivrabilité élevés par conception.

Contrairement au serveur SMTP local, nous fournissons des enregistrements DNS pour les protocoles d’authentification SPF, DKIM, et DMARC. Nous effectuons également des contrôles de sécurité pour une protection maximale et prenons en charge les connexions chiffrées.

Une fois les emails envoyés, Email API/SMTP vous permettra d’accéder à des Analyses Approfondies Exploitables.

Pour conclure

Gérer un serveur de messagerie local peut parfois être pénible. De grandes connaissances et efforts sont nécessaires pour obtenir une bonne délivrabilité des emails en utilisant votre propre serveur SMTP. C’est pourquoi nous recommandons de choisir un service API et SMTP comme l’Email API/SMTP de Mailtrap.

Un serveur SMTP local est peut-être bon pour les tests, mais l’Email Testing de Mailtrap, ou d’autres outils de test d’email, le feront mieux.

Alors, avez-vous vraiment besoin d’un serveur SMTP local ? Vous êtes le seul qui puisse répondre à cette question. Bonne chance !

Article by Zakhar Yung Technical Content Writer @Mailtrap