Configurer un serveur Mailcow comme relais SMTP pour un serveur Virtualmin

Configurer un serveur Mailcow comme relais SMTP pour un serveur Virtualmin

Objectif

L’idée est de permettre à votre serveur Virtualmin (qui héberge vos sites web) d’envoyer les e-mails via Mailcow, sans que Virtualmin ne gère lui-même la partie mail (file d’attente, anti-spam, DKIM, etc.).
Mailcow fera office de relai SMTP authentifié, centralisant ainsi l’envoi et la réception des courriels pour tous vos domaines.


Prérequis

  • Un serveur Mailcow fonctionnel (par ex. mail.bernard.fr).

  • Un serveur Virtualmin hébergeant vos sites web (ex. monserveur.ovh.net).

  • Les ports suivants ouverts entre les deux serveurs :

    • 587/TCP (SMTP submission avec STARTTLS)

    • 465/TCP (optionnel, SMTPS)

  • Accès SSH root sur les deux machines.


Étape 1 — Créer un compte SMTP sur Mailcow

  1. Connectez-vous à votre interface Mailcow (https://mail.bernard.fr).

  2. Créez une boîte mail technique dédiée à l’envoi (par ex. relay@bernard.fr).

  3. Notez :

    • L’adresse du serveur SMTP : mail.bernard.fr

    • Le port : 587

    • Le mode d’authentification : STARTTLS

    • Le nom d’utilisateur : relay@bernard.fr

    • Le mot de passe du compte.

💡 Astuce : vous pouvez restreindre ce compte à certains domaines si vous utilisez la fonctionnalité « Sender ACL » de Mailcow pour plus de sécurité.


Étape 2 — Configurer Postfix sur Virtualmin comme client relayé

Sur votre serveur Virtualmin (où Postfix est déjà installé), modifiez la configuration pour qu’il relaye tout le courrier sortant via Mailcow.

1. Éditer la configuration principale de Postfix

Ouvrez le fichier /etc/postfix/main.cf :

sudo nano /etc/postfix/main.cf

Ajoutez ou modifiez les lignes suivantes :

relayhost = [mail.infosolsrv.fr]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

2. Créer le fichier des identifiants SMTP

sudo nano /etc/postfix/sasl_passwd

Et ajoutez :

[mail.infosolsrv.fr]:587 relay@bernard.fr:motdepasse

Puis sécurisez-le :

sudo postmap /etc/postfix/sasl_passwd sudo chmod 600 /etc/postfix/sasl_passwd*
 
Remarque : Il est aussi possible d'effectuer ces opérations via l'interface graphique de configuration de Postfix sur Virtualmin.

 


Étape 3 — Redémarrer Postfix

Appliquez la nouvelle configuration :

sudo systemctl restart postfix

Et vérifiez que tout est correct :

postconf | grep relayhost

Vous devriez obtenir :

relayhost = [mail.bernard.fr]:587

Étape 4 — Tester l’envoi de mail

Envoyez un message test depuis le VPS (Virtualmin) :

echo "Test relais Mailcow" | mail -s "Test Mailcow relay" [email protected]

Puis consultez les logs :

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

Si tout est bien configuré, vous devriez voir une ligne comme :

status=sent (250 2.0.0 OK id=1s9T2f-0001XY-4N)

Et sur Mailcow, le message apparaîtra dans les logs d’envoi (mailcow-dockerized -> Logs -> SMTP).


Étape 5 — Ajuster les entêtes d’envoi (optionnel)

Par défaut, Postfix sur Virtualmin utilisera comme expéditeur le domaine de vos sites web (par ex. [email protected]).
Mailcow signera le mail avec les DKIM/DMARC/SPF configurés pour ce domaine.

Si vous voulez forcer un From ou un envelope sender différent, vous pouvez modifier /etc/postfix/generic :

 
@tupperware.fr relay@bernard.fr

Puis exécuter :

sudo postmap /etc/postfix/generic

Et dans main.cf :

smtp_generic_maps = hash:/etc/postfix/generic

Étape 6 — Sécurité et bonnes pratiques

  • N’ouvrez pas le port 25 en sortie depuis Virtualmin (sauf si nécessaire).

  • Utilisez STARTTLS (587) pour chiffrer les communications.

  • Activez la limitation d’envoi sur le compte email de relai relay@bernard.fr dans Mailcow.

  • Vérifiez que les DNS SPF/DKIM/DMARC sont bien configurés sur vos domaines pour pointer vers Mailcow.

  • Vérifiez que votre fournisseur de VPS ne bloque les ports 465, 587 ou 25 (C'est le cas de Hetzner, mais en faisant une demande depuis l'interface de gestion, on peut les débloquer)

Conclusion

Grâce à cette configuration :

  • Votre serveur Virtualmin délègue tout l’envoi d’e-mails à Mailcow.

  • Mailcow s’occupe de la réputation, du chiffrement, des signatures et de la file d’attente.

  • Vous centralisez vos mails tout en gardant Virtualmin léger et sécurisé.


Bonus : diagnostic rapide

Problème Vérification
Les mails ne partent pas tail -f /var/log/mail.log
Authentification SASL échouée Vérifiez /etc/postfix/sasl_passwd et postmap
TLS error Vérifiez smtp_tls_CAfile
DKIM absent Vérifiez que Mailcow signe bien les mails sortants

 

Partager cet article :

Articles récents

Configurer un serveur OpenVPN sur un EdgeRouterX Ubiquiti
Configurer un serveur OpenVPN sur un EdgeRouterX Ubiquiti

18 June 2026

Vous avez un EdgeRouter Ubiquiti (EdgeOS) et vous voulez pouvoir accéder à votre réseau local depuis l'extrérieur, en toute sécurité; ? Dans ce tuto, on monte p...

Lire la suite
Pourquoi depuis fin 2025 vos mails Free ne fonctionnent plus dans Outlook ?
Pourquoi depuis fin 2025 vos mails Free ne fonctionnent plus dans Outlook ?

16 June 2026

  Depuis fin 2025, de nombreux utilisateurs Free constatent un problème identique : leurs mails fonctionnent parfaitement sur le webmail Free ou depuis un smartphone, mais le client Outlo...

Lire la suite
Exposer un VirtualHost local en permanence avec ngrok
Exposer un VirtualHost local en permanence avec ngrok

12 June 2026

Configurer un service autonome pour ngrok sur un serveur Linux

Lire la suite