Configurer un serveur mail Postfix avec Dovecot, MariaDB et domaines virtuels

Héberger son propre serveur mail reste possible. En revanche, ce n’est plus le petit bricolage tranquille des années 2010.

À l’époque, on pouvait assembler Postfix, Courier, MySQL, un certificat auto-signé et quelques règles iptables. Cela fonctionnait. Parfois même très bien. Aujourd’hui, cette approche a vieilli, et certains choix techniques méritent une retraite honorable.

Dans ce guide, nous allons mettre en place une architecture plus actuelle : Postfix pour l’envoi et la réception SMTP, Dovecot pour IMAP, LMTP et l’authentification SASL, puis MariaDB pour stocker les domaines, les boîtes mail et les alias virtuels.

Le but n’est pas de monter une usine à gaz. Le but est de disposer d’un serveur mail propre, lisible, maintenable et compatible avec plusieurs domaines.

Ce qui change par rapport à l’ancienne méthode

L’ancien tutoriel utilisait Courier pour POP/IMAP, saslauthd pour l’authentification SMTP, des tables MySQL en MyISAM et la fonction SQL ENCRYPT() pour les mots de passe.

Aujourd’hui, je recommande une autre base :

  • Dovecot remplace Courier pour IMAP, LMTP et SASL.
  • LMTP remplace la livraison directe dans les Maildir par Postfix.
  • MariaDB en InnoDB remplace les tables MyISAM.
  • doveadm pw génère les hash de mots de passe.
  • Let’s Encrypt ou acme.sh remplace le certificat auto-signé.
  • systemd remplace les vieux appels /etc/init.d/.
  • UFW ou nftables remplace les règles iptables éditées à la main.

Cela donne une stack moins nostalgique, mais beaucoup plus saine. Le mail n’a pas besoin d’un musée. Il a besoin d’un plan clair.

Kinsta: Premium Managed WordPress hosting

Architecture du serveur mail

Voici le schéma retenu :

  • Postfix reçoit les mails sur le port 25.
  • Postfix submission accepte l’envoi authentifié sur le port 587.
  • Dovecot fournit IMAP sur le port 993.
  • Dovecot SASL authentifie les utilisateurs SMTP pour Postfix.
  • Dovecot LMTP reçoit les messages locaux depuis Postfix.
  • MariaDB stocke domaines, alias et comptes mail.
  • /var/vmail contient les boîtes mail au format Maildir.

Dans les exemples, j’utilise le domaine example.com et le serveur mail.example.com. Remplacez-les évidemment par vos propres valeurs.

Prérequis DNS indispensables

Avant même d’installer Postfix, vérifiez votre DNS. Un serveur mail mal déclaré finit vite dans les spams, ou pire, dans le néant. C’est moins romantique qu’une bouteille à la mer, mais le résultat est le même.

Vous aurez besoin au minimum de ces enregistrements :

  • A / AAAA : mail.example.com pointe vers l’adresse IP du serveur.
  • MX : example.com reçoit ses mails via mail.example.com.
  • PTR reverse DNS : l’adresse IP du serveur pointe vers mail.example.com.
  • SPF : le domaine autorise le serveur à envoyer des mails.
  • DKIM : les mails sortants sont signés.
  • DMARC : le domaine définit sa politique d’authentification.

Exemple minimal de zone DNS :

mail    IN A     203.0.113.10
@       IN MX 10 mail.example.com.
@       IN TXT   "v=spf1 mx -all"
_dmarc  IN TXT   "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"Langage du code : CSS (css)

Pour DKIM, utilisez OpenDKIM ou Rspamd selon votre stack. Je garde ce point hors du guide principal, car il mérite un article dédié.

Configurer le hostname du serveur

Le serveur doit connaître son nom complet. Ici, nous utilisons mail.example.com.

sudo hostnamectl set-hostname mail.example.comLangage du code : CSS (css)

Vérifiez ensuite le résultat :

hostname -f

Le fichier /etc/hosts doit aussi rester propre :

127.0.0.1       localhost
203.0.113.10    mail.example.com mailLangage du code : CSS (css)

Évitez de faire pointer le hostname public vers 127.0.1.1 sur un serveur mail exposé. Postfix aime savoir qui il est. Les autres serveurs aussi.

Kinsta: Premium Managed WordPress hosting

Installer les paquets nécessaires

Sur Debian ou Ubuntu Server, installez Postfix, Dovecot, MariaDB et les modules SQL nécessaires :

sudo apt update
sudo apt install postfix postfix-mysql mariadb-server mailutils \
  dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Pendant l’installation de Postfix, choisissez Internet Site, puis indiquez le nom système :

mail.example.comLangage du code : CSS (css)

Vérifiez ensuite les services :

systemctl status postfix
systemctl status dovecot
systemctl status mariadb

Créer l’utilisateur système vmail

Les utilisateurs mail seront virtuels. Ils n’auront pas de comptes Unix. Tous les messages seront stockés sous un utilisateur système unique : vmail.

sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /var/vmail -m -s /usr/sbin/nologinLangage du code : JavaScript (javascript)

Fixez les permissions :

sudo chown -R vmail:vmail /var/vmail
sudo chmod 750 /var/vmailLangage du code : JavaScript (javascript)

Le compte vmail ne sert qu’au stockage. Personne ne doit s’y connecter en SSH.

Créer la base MariaDB

MariaDB utilise généralement l’authentification par socket Unix pour l’utilisateur root local. Sur Debian et Ubuntu, la connexion se fait souvent avec sudo mariadb, sans mot de passe root SQL séparé.

sudo mariadb

Créez ensuite la base, l’utilisateur SQL et les tables :

CREATE DATABASE mailserver CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'mailreader'@'localhost' IDENTIFIED BY 'CHANGE_THIS_LONG_PASSWORD';

GRANT SELECT ON mailserver.* TO 'mailreader'@'localhost';

USE mailserver;

CREATE TABLE domains (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  domain VARCHAR(255) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY domain_unique (domain)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE users (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL,
  maildir VARCHAR(255) NOT NULL,
  quota BIGINT UNSIGNED NOT NULL DEFAULT 0,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY email_unique (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE aliases (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  source VARCHAR(255) NOT NULL,
  destination TEXT NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY source_unique (source)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

FLUSH PRIVILEGES;Langage du code : PHP (php)

On utilise volontairement un utilisateur SQL en lecture seule. Postfix et Dovecot n’ont pas besoin d’écrire dans cette base pour livrer et authentifier les mails.

Kinsta: Premium Managed WordPress hosting

Ajouter un domaine, un utilisateur et un alias

Ajoutons d’abord le domaine :

INSERT INTO domains (domain, active)
VALUES ('example.com', 1);Langage du code : JavaScript (javascript)

Pour générer un mot de passe compatible avec Dovecot, utilisez doveadm pw :

doveadm pw -s BLF-CRYPT

Copiez le hash obtenu, puis insérez l’utilisateur :

INSERT INTO users (email, password, maildir, quota, active)
VALUES (
  'matt@example.com',
  '{BLF-CRYPT}$2y$05$REPLACE_WITH_REAL_HASH',
  'example.com/matt/',
  0,
  1
);Langage du code : JavaScript (javascript)

Ajoutez enfin un alias simple :

INSERT INTO aliases (source, destination, active)
VALUES ('contact@example.com', 'matt@example.com', 1);Langage du code : JavaScript (javascript)

Vous pouvez aussi créer un alias vers plusieurs destinataires en séparant les adresses par des virgules :

INSERT INTO aliases (source, destination, active)
VALUES ('team@example.com', 'matt@example.com,alice@example.com', 1);Langage du code : JavaScript (javascript)

Configurer les requêtes SQL de Postfix

Postfix va interroger MariaDB pour savoir quels domaines, alias et boîtes mail existent.

Créez le fichier des domaines virtuels :

sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf
user = mailreader
password = CHANGE_THIS_LONG_PASSWORD
hosts = 127.0.0.1
dbname = mailserver
query = SELECT domain FROM domains WHERE domain = '%s' AND active = 1Langage du code : JavaScript (javascript)

Créez ensuite le fichier des boîtes mail :

sudo nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = mailreader
password = CHANGE_THIS_LONG_PASSWORD
hosts = 127.0.0.1
dbname = mailserver
query = SELECT maildir FROM users WHERE email = '%s' AND active = 1Langage du code : JavaScript (javascript)

Créez enfin le fichier des alias :

sudo nano /etc/postfix/mysql-virtual-alias-maps.cf
user = mailreader
password = CHANGE_THIS_LONG_PASSWORD
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM aliases WHERE source = '%s' AND active = 1Langage du code : JavaScript (javascript)

Ces fichiers contiennent un mot de passe SQL. On verrouille donc les permissions :

sudo chown root:postfix /etc/postfix/mysql-virtual-*.cf
sudo chmod 640 /etc/postfix/mysql-virtual-*.cf

Testez les requêtes avant de toucher au reste de Postfix :

postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
postmap -q matt@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
postmap -q contact@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cfLangage du code : JavaScript (javascript)

Si ces commandes ne retournent rien, ne continuez pas. Corrigez d’abord la base, les permissions ou les identifiants SQL.

Configurer Postfix pour les domaines virtuels

Ouvrez le fichier principal de Postfix :

sudo nano /etc/postfix/main.cf

Ajoutez ou adaptez ces directives :

myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = localhost
mynetworks = 127.0.0.0/8 [::1]/128
inet_interfaces = all
inet_protocols = all

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

virtual_transport = lmtp:unix:private/dovecot-lmtp

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination

smtpd_relay_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destinationLangage du code : JavaScript (javascript)

Le point important ici : Postfix ne livre pas directement dans /var/vmail. Il passe les messages à Dovecot via LMTP. C’est plus propre, notamment pour les règles Sieve, les quotas et les futures évolutions.

Kinsta: Premium Managed WordPress hosting

Configurer le port submission 587

Le port 25 sert à recevoir les mails entre serveurs. Pour les clients mail, utilisez le port 587 avec authentification et STARTTLS.

Éditez /etc/postfix/master.cf :

sudo nano /etc/postfix/master.cf

Activez ou adaptez le service submission :

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Ainsi, un client mail authentifié peut envoyer des messages. Un inconnu ne peut pas transformer votre serveur en relais ouvert. Et c’est très bien comme ça.

Installer un certificat TLS valide

N’utilisez plus de certificat auto-signé pour un serveur mail public. Utilisez Let’s Encrypt via Certbot, acme.sh ou votre méthode ACME habituelle.

Avec Certbot en mode standalone, cela peut ressembler à ceci :

sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.comLangage du code : CSS (css)

Configurez ensuite Postfix :

smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtpd_tls_loglevel = 1Langage du code : JavaScript (javascript)

Pour Dovecot, nous utiliserons les mêmes fichiers de certificat.

Configurer Dovecot pour IMAP, LMTP et SASL

Dovecot va gérer trois rôles essentiels : l’accès IMAP, la livraison LMTP et l’authentification SASL utilisée par Postfix.

Commencez par vérifier que les protocoles nécessaires sont activés dans /etc/dovecot/dovecot.conf :

dovecot_config_version = 2.4.0
dovecot_storage_version = 2.4.0

protocols = imap lmtp

Configurez ensuite le stockage dans /etc/dovecot/conf.d/10-mail.conf :

mail_driver = maildir
mail_path = /var/vmail/%{user | domain}/%{user | username}
mail_uid = vmail
mail_gid = vmailLangage du code : JavaScript (javascript)

Dovecot 2.4 a remplacé les anciennes variables courtes : %d devient %{user | domain}, %n devient %{user | username}, %u devient %{user}.

Dans cette configuration, matt@example.com sera stocké dans :

/var/vmail/example.com/matt/Langage du code : JavaScript (javascript)

Configurez l’authentification dans /etc/dovecot/conf.d/10-auth.conf :

disable_plaintext_auth = yes
auth_mechanisms = plain login

#!include auth-system.conf.ext
!include auth-sql.conf.extLangage du code : PHP (php)

L’authentification en clair reste interdite hors TLS. Les mécanismes plain et login restent normaux pour les clients mail, car ils passent dans un tunnel TLS.

Configurer Dovecot avec MariaDB

Éditez le fichier SQL de Dovecot :

sudo nano /etc/dovecot/dovecot-sql.conf.ext

Ajoutez la configuration suivante :

passdb sql {
  sql_driver = mysql
  mysql hosts {
    host = 127.0.0.1
    dbname = mailserver
    user = mailreader
    password = CHANGE_THIS_LONG_PASSWORD
  }

  default_password_scheme = BLF-CRYPT

  query = SELECT email AS user, password \
    FROM users \
    WHERE email = '%{user}' AND active = 1
}

userdb sql {
  sql_driver = mysql
  mysql hosts {
    host = 127.0.0.1
    dbname = mailserver
    user = mailreader
    password = CHANGE_THIS_LONG_PASSWORD
  }

  query = SELECT \
      CONCAT('/var/vmail/', maildir) AS home, \
      5000 AS uid, \
      5000 AS gid \
    FROM users \
    WHERE email = '%{user}' AND active = 1

  iterate_query = SELECT email AS user \
    FROM users \
    WHERE active = 1
}Langage du code : PHP (php)

Verrouillez le fichier :

sudo chown root:dovecot /etc/dovecot/dovecot-sql.conf.ext
sudo chmod 640 /etc/dovecot/dovecot-sql.conf.ext

Testez ensuite l’authentification :

doveadm auth test matt@example.comLangage du code : CSS (css)

Si Dovecot ne trouve pas l’utilisateur, vérifiez d’abord le hash du mot de passe, puis la requête SQL. Ne partez pas à la chasse au dahu dans Postfix si Dovecot échoue déjà ici.

Configurer le socket SASL pour Postfix

Postfix doit pouvoir interroger Dovecot pour authentifier les utilisateurs SMTP. Cela se fait via un socket Unix dans le chroot de Postfix.

Éditez /etc/dovecot/conf.d/10-master.conf :

sudo nano /etc/dovecot/conf.d/10-master.conf

Dans le bloc service auth, ajoutez :

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}Langage du code : PHP (php)

Configurez aussi LMTP dans le même fichier :

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}Langage du code : PHP (php)

Ajoutez une adresse postmaster dans /etc/dovecot/conf.d/20-lmtp.conf :

protocol lmtp {
  postmaster_address = postmaster@example.com
}

Configurer TLS pour Dovecot

Éditez /etc/dovecot/conf.d/10-ssl.conf :

ssl = required
ssl_server_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pemLangage du code : JavaScript (javascript)

Vérifiez ensuite la configuration complète :

doveconf -n

Sur Dovecot 2.4, certaines syntaxes changent par rapport aux anciennes configurations 2.3. Si vous migrez un vieux serveur, contrôlez les avertissements de doveconf avant de redémarrer. Ce petit contrôle évite de transformer une migration mail en séance de spiritisme.

Redémarrer et valider les services

Avant de redémarrer, vérifiez Postfix :

sudo postfix check
postconf -n

Vérifiez Dovecot :

doveconf -n

Redémarrez ensuite :

sudo systemctl restart postfix
sudo systemctl restart dovecot

Surveillez les logs :

journalctl -u postfix -f
journalctl -u dovecot -f

Selon votre distribution, les logs mail peuvent aussi se trouver dans :

/var/log/mail.log
/var/log/mail.errLangage du code : JavaScript (javascript)

Ouvrir les ports nécessaires

Avec UFW, ouvrez uniquement les ports nécessaires :

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp

Le port 465 peut être utile pour la soumission SMTP implicite TLS, mais le port 587 reste le choix standard pour la majorité des configurations modernes.

POP3 et POP3S sont rarement nécessaires aujourd’hui. Si vous n’en avez pas besoin, ne les activez pas. Moins de surface, moins d’ennuis.

Tester SMTP et IMAP

Testez d’abord le port SMTP public :

openssl s_client -starttls smtp -connect mail.example.com:25 -servername mail.example.comLangage du code : CSS (css)

Testez ensuite le port submission :

openssl s_client -starttls smtp -connect mail.example.com:587 -servername mail.example.comLangage du code : CSS (css)

Testez enfin IMAPS :

openssl s_client -connect mail.example.com:993 -servername mail.example.comLangage du code : CSS (css)

Pour tester une authentification Dovecot localement :

doveadm auth test matt@example.comLangage du code : CSS (css)

Pour envoyer un mail de test depuis le serveur :

echo "Test depuis Postfix" | mail -s "Test serveur mail" matt@example.comLangage du code : PHP (php)

Configurer un client mail

Dans Thunderbird, Apple Mail, Outlook ou un client mobile, utilisez les paramètres suivants :

Serveur entrantmail.example.com
Protocole entrantIMAP
Port IMAP993
Sécurité IMAPTLS/SSL
Serveur sortantmail.example.com
Port SMTP587
Sécurité SMTPSTARTTLS
Identifiantadresse email complète
Mot de passemot de passe défini pour la boîte mail

L’identifiant doit être l’adresse complète, par exemple matt@example.com. Pas seulement matt.

Ajouter PostfixAdmin si vous voulez une interface web

Créer des domaines et utilisateurs à la main en SQL fonctionne. Toutefois, ce n’est pas très confortable à long terme.

Pour gérer plusieurs domaines, des alias, des boîtes mail et des mots de passe sans requêtes SQL manuelles, vous pouvez installer PostfixAdmin. Il s’intègre avec Postfix, Dovecot et une base SQL, puis vous donne une interface web d’administration.

J’ai détaillé cette approche dans l’article gérer les comptes et alias email avec PostfixAdmin.

Sécurité : les points à ne pas négliger

Un serveur mail exposé attire vite les robots. Il faut donc verrouiller les bases.

  • Refusez le relais anonyme.
  • Imposez TLS pour l’authentification SMTP.
  • Utilisez des mots de passe solides.
  • Surveillez les échecs d’authentification.
  • Ajoutez SPF, DKIM et DMARC.
  • Gardez Postfix, Dovecot, OpenSSL et MariaDB à jour.
  • Configurez Fail2ban ou un équivalent si votre serveur subit du brute force.
  • Testez régulièrement la réputation de votre IP.

Vous pouvez aussi renforcer la couche TLS de vos services. J’ai déjà abordé la logique PFS dans l’article sur Apache HTTPS et Perfect Forward Secrecy. Le contexte change, mais l’idée reste la même : éviter les vieux protocoles et les suites cryptographiques moisies.

Dépannage rapide

Postfix ne trouve pas le domaine

Testez la map SQL :

postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cfLangage du code : JavaScript (javascript)

Si la commande ne renvoie rien, vérifiez la table domains, le champ active, puis les identifiants SQL.

L’utilisateur IMAP ne peut pas se connecter

Testez directement Dovecot :

doveadm auth test matt@example.comLangage du code : CSS (css)

Si l’authentification échoue, le problème vient de Dovecot, du hash de mot de passe ou de la requête SQL. Ce n’est probablement pas Thunderbird. Même si Thunderbird aime parfois faire l’intéressant.

Les mails n’arrivent pas dans la boîte

Surveillez Postfix et Dovecot en même temps :

journalctl -u postfix -f
journalctl -u dovecot -f

Vérifiez aussi les permissions de /var/vmail :

ls -ld /var/vmail
ls -la /var/vmail/example.comLangage du code : JavaScript (javascript)

Le propriétaire attendu est vmail:vmail.

MariaDB ne répond pas via le socket

Vérifiez l’état du service :

systemctl status mariadb
mysqladmin ping

Si le socket local pose problème, consultez aussi l’article résoudre l’erreur MySQL “can’t connect to local MySQL server socket”.

Faut-il encore auto-héberger son mail ?

Oui, si vous aimez comprendre et contrôler votre infrastructure. Non, si vous cherchez juste une boîte mail professionnelle sans maintenance.

Un serveur mail demande plus qu’une installation réussie. Il faut maintenir la réputation IP, surveiller les logs, renouveler les certificats, gérer les sauvegardes, suivre les évolutions SPF/DKIM/DMARC et rester attentif aux changements de Postfix ou Dovecot.

Pour un usage personnel, associatif ou technique, cette architecture reste très intéressante. Pour une entreprise qui dépend fortement de l’email, un service spécialisé peut parfois éviter beaucoup de sueurs froides.

FAQ

Pourquoi remplacer Courier par Dovecot ?

Dovecot simplifie l’architecture. Il gère IMAP, LMTP, SASL, SQL et les utilisateurs virtuels dans une seule stack cohérente. Il est aussi très bien documenté et largement utilisé.

Pourquoi utiliser LMTP au lieu de livrer directement dans Maildir ?

LMTP délègue la livraison finale à Dovecot. Cela facilite les quotas, Sieve, les permissions et les futures évolutions. Postfix transporte, Dovecot livre. Chacun son métier.

Puis-je garder MySQL au lieu de MariaDB ?

Oui. Postfix et Dovecot peuvent utiliser MySQL ou MariaDB. Adaptez simplement les paquets et les détails de connexion SQL à votre distribution.

Dois-je activer POP3 ?

Pas forcément. IMAP suffit dans la majorité des cas. Activez POP3 seulement si vous avez un besoin précis ou un client ancien à supporter.

Pourquoi utiliser l’adresse email complète comme identifiant ?

Parce qu’un même serveur peut héberger plusieurs domaines. L’utilisateur contact peut exister sur plusieurs domaines. L’adresse complète supprime toute ambiguïté.

PostfixAdmin est-il obligatoire ?

Non. Vous pouvez gérer la base à la main. Cependant, PostfixAdmin devient vite pratique dès que vous avez plusieurs domaines, plusieurs utilisateurs ou des alias fréquents.

Conclusion

L’ancien duo Postfix + Courier + MySQL a rendu de bons services. Mais aujourd’hui, une stack Postfix + Dovecot + MariaDB offre une base plus claire, plus moderne et plus maintenable.

Le point essentiel consiste à séparer les rôles : Postfix reçoit et envoie, Dovecot authentifie et livre, MariaDB stocke les comptes virtuels. Une fois cette logique comprise, le serveur mail devient beaucoup moins mystérieux.

Ensuite, le vrai travail commence : DNS propre, TLS valide, SPF, DKIM, DMARC, logs surveillés et mises à jour régulières. Le mail reste un vieux protocole. Donc, forcément, il a du caractère.

Sources et documentation

Laisser un commentaire