Dans l’article de blog Meilleurs serveurs SMTP gratuits, nous avons abordé les solutions basées sur le cloud pour l’envoi d’e-mails. Ceux-ci sont assez courants pour toutes les tailles de projets. Mais que se passe-t-il si vous ne souhaitez pas utiliser les services de relais de messagerie de Gmail SMTP ou ses alternatives? Dans cet article, nous allons vous apprendre à configurer un serveur SMTP local et à vous débarrasser de toutes les dépendances d’envoi d’e-mails.
Avez-vous vraiment besoin d’un serveur SMTP ?
L’utilisation d’un serveur SMTP sortant est la méthode traditionnelle d’envoi d’e-mails. Une solution alternative consiste à contourner le serveur SMTP et à envoyer directement à la destination. Il est connu sous le nom d’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 FAI.
- Il n’est pas adapté aux e-mails en masse en raison de connexions multiples à de nombreux serveurs différents.
- Il ne peut pas envoyer d’e-mails non personnalisés.
- Il peut être bloqué par des filtres d’e-mails car les e-mails ne sont pas envoyés depuis un serveur SMTP ordinaire.
Mettons l’envoi direct. Ce qui pourrait vous intéresser, c’est pourquoi vous utiliseriez votre propre serveur SMTP.
Avantages et inconvénients d’un serveur SMTP local
Avantages | Inconvénients |
---|---|
|
|
Certaines solutions basées sur le cloud telles que Mailgun et SendPulse offrent également tous les avantages ci-dessus. Cependant, toutes ces fonctionnalités sont payantes et vous devez toujours compter sur un service tiers. Au lieu de cela, vous pouvez configurer un serveur SMTP sur votre ordinateur à l’aide d’un logiciel spécifique.
Exigences pour un serveur SMTP local
Il n’y a pas d’exigences spécifiques à ce jour. Néanmoins, vous devez être prêt pour ce qui suit:
- Certains FAI peuvent bloquer le port 25. Vous pouvez résoudre ce problème en contactant votre fournisseur d’accès Internet et en vous informant des limites qu’il peut imposer. En outre, vous devez demander un serveur DNS et une autorisation corrects pour la résolution des enregistrements MX.
- Pour les e-mails en masse, vous devriez probablement opter pour un domaine et une adresse IP fixe qui lui est associée – cela augmentera votre résistance aux filtres anti-spam.
Configuration rapide du serveur SMTP
Maintenant, faisons le travail. Puisque vous allez configurer un serveur SMTP sur votre ordinateur, il est crucial de savoir quel système d’exploitation est utilisé. C’est pourquoi nous examinerons trois façons de procéder pour macOS, Windows et Linux.
Remarque importante : Si vous envoyez des e-mails de test à l’adresse e-mail réelle, vous risquez de ne pas les trouver dans la boîte de réception. N’oubliez pas de vérifier le dossier spam. Les ESP comme Gmail, Yahoo et d’autres se méfient des nouveaux agents de transfert de courrier.
Pour macOS
Les dernières versions de macOS X sont préinstallées avec Postfix – un serveur de messagerie par défaut. Il vous suffit donc de modifier la configuration du serveur SMTP comme suit:
Fichier de configuration Postfix
- Le fichier de configuration principal Postfix est le premier à utiliser. Courir:
sudo vim /etc/postfix/main.cf
- Indiquez à Postfix quel nom il doit utiliser pour s’identifier à d’autres serveurs de messagerie. Ajoutez les lignes suivantes:
myhostname = john.example.commyorigin = example.com
Si votre nom d’utilisateur local est John, le courrier apparaîtra comme provenant de [email protected].
- L’hôte relais est la machine qui acceptera les mails après l’authentification et les relaiera au serveur SMTP.
relayhost=mail.example.com:25
- Vous devez activer SASL avec un fichier de configuration supplémentaire, où le mot de passe est stocké.
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- Cette ligne signifie que Postfix n’utilisera que des connexions chiffrées TLS.
smtp_tls_security_level = encrypt
- Voici à quoi ressemble
main.cf
en entier:
myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
- Enregistrez le fichier avec:
sudo postmap /etc/postfix/main.cf
Fichier avec mot de passe SASL
- Créer le fichier
sasl_passwd
:
sudo vim /etc/postfix/sasl_passwd
- Ajoutez la ligne suivante:
mail.example.com:25 [email protected]:
- Enregistrez le fichier avec:
sudo postmap /etc/postfix/sasl_passwd
- Et redémarrez Postfix:
sudo postfix reload
Le serveur SMTP local est prêt. Essayez-le en envoyant un e-mail de test:
date | mail -s "Test email" [email protected]
Remarque : ce flux de configuration convient aux machines non macOS qui disposent d’un démon Postfix standard.
Pour Linux
La plupart des distributions Linux sont livrées avec les deux implémentations SMTP les plus courantes : Sendmail et Postfix. Sendmail a un design assez complexe et est moins sécurisé; c’est pourquoi nous avons de nouveau choisi Postfix.
Installation
Si vous n’avez pas de Postfix sur votre machine, installez-le d’abord. En outre, vous aurez besoin du package de messagerie Mailutils, qui comprend les programmes nécessaires au fonctionnement de Postfix:
sudo apt install mailutils postfix
Dans la fenêtre de configuration Postfix, vous devrez choisir la configuration de la messagerie du site Internet. Enfin, vous devrez spécifier le nom du courrier système. Il doit être le même que le nom que vous avez attribué au nom de domaine pointant vers votre serveur. Utilisons example.com .
Configuration
Maintenant, configurons Postfix pour traiter les demandes d’envoi d’e-mails 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
De plus, vous devez modifier mydestination
, qui spécifie la liste des domaines. Cela devrait ressembler à ceci:
mydestination = $myhostname, localhost.$example.com, $example.com
Enregistrez le fichier et redémarrez Postfix avec:
sudo systemctl restart postfix
À la fin, essayez d’envoyer un e-mail de test:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
Pour Windows
Il existe plusieurs options logicielles pour configurer un serveur SMTP sous Windows, notamment MailEnable et Apache James. Mais nous avons opté pour le plus populaire, appelé hMailServer.
Installation
Téléchargez la dernière version ici et installez-la. Au début de l’installation, vous devez faire attention à ce qui suit:
- Dans la fenêtre Sélectionner les composants, assurez-vous que l’installation complète est sélectionnée. Les composants serveur et d’administration doivent être vérifiés.
- Dans la fenêtre Sélectionner le type de serveur de base de données, vérifiez le moteur de base de données intégré.
- Dans la fenêtre de sécurité hMailServer, créez un mot de passe pour l’utilisateur par défaut.
Une fois installé, exécutez hMailServer et configurons-le maintenant.
Configuration
- Cliquez sur Se connecter dans la fenêtre de démarrage et entrez le mot de passe que vous avez configuré lors de l’installation.
- Cliquez sur Ajouter un domaine et entrez votre nom de domaine dans le champ correspondant. En passant, vous pouvez utiliser un faux nom de domaine car le vrai n’est pas nécessaire pour envoyer des e-mails. Mais, dans ce cas, assurez-vous que le faux domaine n’existe pas réellement. Cliquez sur Enregistrer et vous verrez votre domaine créé dans l’onglet de gauche.
- Sélectionnez le dossier Comptes dans l’onglet gauche et cliquez sur Ajouter… pour en configurer un. Tout ce que vous devez faire ici est d’entrer un nom dans le champ d’adresse. Cela configurera votre adresse e-mail. Vous pouvez éventuellement spécifier un mot de passe. Cliquez sur Enregistrer et accédez aux paramètres dans l’onglet de gauche.
- Développez le thread Paramètres et sélectionnez Protocoles. Décochez POP3 et IMAP. Pour en savoir plus sur ces protocoles, lisez notre article de blog IMAP vs. POP3 vs. SMTP. Cliquez sur Enregistrer.
- Maintenant, sélectionnez Avancé dans le thread Paramètres et entrez localhost dans le champ Domaine par défaut de l’onglet droit. Cliquez sur Enregistrer. Pour vous retrouver avec les paramètres avancés, sélectionnez Interdiction automatique et décochez la case Activée. Cliquez sur Enregistrer.
- À la fin, développez le thread Utilitaires et sélectionnez Diagnostics. Sélectionnez votre domaine sur lequel exécuter les tests et cliquez sur Démarrer. Tous les tests ne nous intéressent pas, collectez simplement les détails du serveur et testez le port sortant. Ceux-ci doivent être marqués en vert.
C’est tout. Vous pouvez maintenant envoyer votre e-mail de test. Cela peut être fait avec PowerShell – c’est rapide et facile. Pour en savoir plus à ce sujet, lisez notre article de blog Envoyer des e-mails de PowerShell. Exécutez la ligne suivante (n’oubliez pas de saisir vos données):
Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25
Dans la fenêtre contextuelle, vous devrez entrer votre mot de passe.
Un serveur SMTP est-il bon pour les tests ?
Dans la plupart des cas, les utilisateurs configurent des serveurs SMTP locaux à des fins de test. Si vous développez une application qui enverra des e-mails, vous devrez tester cette fonction, et un vrai serveur SMTP fonctionnant sur votre machine locale peut sembler être une bonne option. Mais, n’est-ce pas? D’une part, il n’est pas gênant d’installer et de configurer un serveur SMTP local. Cependant, il existe une bien meilleure solution.
Si vous utilisez Mailtrap pour les tests, vous obtiendrez un outil avancé basé sur un faux serveur SMTP. Cela signifie que votre application enverra des e-mails mais ne les livrera pas réellement. Votre courrier sortant se retrouvera dans la boîte de réception de démonstration Mailtrap. Ainsi, vous n’aurez pas à vous soucier des destinataires réels des e-mails et de la vérification du dossier spam chaque fois que vous exécutez des tests. Aucune installation n’est requise, du tout. Tout ce que vous avez à faire est de mettre à jour vos paramètres SMTP avec les informations d’identification Mailtrap. Vous pouvez également copier et coller un extrait de code prêt à l’emploi. Différentes intégrations sont disponibles pour les frameworks et langages de programmation les plus courants. Pour plus d’informations sur les autres avantages et fonctionnalités, lisez le Guide de démarrage de Mailtrap.
Pour conclure
L’exécution d’un serveur de messagerie local peut parfois être pénible. Beaucoup de connaissances et d’efforts sont nécessaires pour obtenir une bonne délivrabilité des e-mails à l’aide de votre propre serveur SMTP. C’est peut-être une bonne option à des fins de test, mais Mailtrap, ou d’autres outils de test par courrier électronique, le fera mieux. Alors, avez-vous réellement besoin d’un serveur SMTP local? Vous êtes le seul à pouvoir répondre à cela. Bonne chance!