Contexte : serveur de messagerie (SMTP, POP3, IMAP) pour un domaine auto-hébergé · Testé sur : non testé, procédure corrigée à partir d'une page de 2023 · Dernière vérification : contenu de 2023 non revérifié
Correction importante : la version d'origine de cette page décrivait une installation sur Ubuntu Server 20.04, avec un installateur
.runet une interface web sur le port 8080. Cela ne correspond pas au logiciel : hMailServer est un serveur de messagerie pour Microsoft Windows, sans version Linux officielle, qui s'administre avec la console hMailServer Administrator. La procédure a été corrigée en conséquence, mais n'a pas été rejouée. Vérifiez aussi l'état de maintenance du projet avant tout déploiement en production.
Installer hMailServer sur un serveur Windows, créer un domaine et des comptes de messagerie, publier les enregistrements DNS nécessaires, ouvrir les ports et tester l'envoi et la réception de messages.
Téléchargez l'installateur (fichier .exe) depuis le site officiel : https://www.hmailserver.com/download
hMailServer peut stocker ses données dans son moteur de base intégré, suffisant pour une petite installation, ou dans une base externe (MySQL ou MariaDB, Microsoft SQL Server, PostgreSQL). Pour une base MariaDB, créez-la avant l'installation.
Si la base est hébergée sur un serveur Debian ou Ubuntu :
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo mysql -u root -p
Créez la base, l'utilisateur et ses droits :
CREATE DATABASE hmailserver;
CREATE USER 'hmailserver'@'localhost' IDENTIFIED BY '<MOT_DE_PASSE_DB>';
GRANT ALL PRIVILEGES ON hmailserver.* TO 'hmailserver'@'localhost';
FLUSH PRIVILEGES;
EXIT;
localhostne convient que si la base tourne sur la même machine que hMailServer. Si elle est sur un autre serveur, remplacezlocalhostpar l'adresse du serveur hMailServer et autorisez les connexions distantes à MariaDB. Avec MySQL ou MariaDB, hMailServer a aussi besoin de la bibliothèque clientelibmysql.dlldans son dossierBin: suivez la documentation d'hMailServer.
hmailserver, utilisateur hmailserver, mot de passe <MOT_DE_PASSE_DB>).exemple.fr).hMailServer ne fournit pas d'interface web intégrée. Pour gérer le serveur ou lire les messages depuis un navigateur, il faut ajouter une application séparée : l'interface PHPWebAdmin, fournie avec hMailServer, ou un webmail.
Dans la zone DNS de votre domaine, créez les enregistrements suivants avec les informations fournies par votre hébergeur DNS (exemple avec exemple.fr) :
| Enregistrement | Rôle | Exemple |
|---|---|---|
| A | Adresse du serveur de messagerie | mail.exemple.fr → adresse IP publique |
| MX | Serveur qui reçoit le courrier du domaine | exemple.fr → mail.exemple.fr (priorité 10) |
| TXT (SPF) | Serveurs autorisés à envoyer pour le domaine | v=spf1 mx -all |
| TXT (DKIM) | Clé publique de signature des messages | clé générée pour le domaine, signature DKIM activée dans les paramètres du domaine |
| TXT (DMARC) | Politique appliquée en cas d'échec SPF ou DKIM | _dmarc.exemple.fr → v=DMARC1; p=none |
| PTR | Résolution inverse de l'adresse IP publique | à demander au fournisseur d'accès |
Autorisez sur le pare-feu Windows (et redirigez depuis la box ou le pare-feu du réseau) uniquement les ports des protocoles activés :
| Port | Usage |
|---|---|
| 25 | SMTP : réception du courrier des autres serveurs |
| 587 | SMTP avec authentification (envoi depuis les clients) |
| 465 | SMTP chiffré (SMTPS) |
| 110 / 995 | POP3 / POP3 chiffré |
| 143 / 993 | IMAP / IMAP chiffré |
Exemple de règle entrante en PowerShell (à adapter à la liste des ports retenus) :
New-NetFirewallRule -DisplayName "hMailServer" -Direction Inbound -Protocol TCP -LocalPort 25,587,993 -Action Allow