Se rendre au contenu

Envoyer des mails depuis son serveur via OVH

Configuration simple, sans trop de prise de tête
19 novembre 2025 par
Envoyer des mails depuis son serveur via OVH
Thomas Silvestre

Pourquoi envoyer des mails depuis son serveur?

Il existe plusieurs scénarios pratiques, notamment lorsque l'on configure un cron job (tâche planifiée) et que l'on souhaite recevoir un email en cas de sortie (erreur, rapport, etc.).

Outils utilisés

  • postfix pour recevoir les mails des utilisateurs locaux (ex: ceux qui exécuteront les tâches)
  • mailutils pour tester l'envoi de mail

Installation

sudo apt-get install postfix mailutils

Un wizard de configuration vous demandera quel type d'installation choisir pour postfix:

Choisissez Satellite system​ pour que le serveur n'écoute qu'en local.

Il demande ensuite le System mail name​, vous pouvez laisser la valeur suggérée.

Ensuite, le wizard demande l'adresse du SMTP relay host​, nous allons spécifier l'adresse du serveur de mail d'OVH: [ssl0.ovh.net]:587​ (oui avec les "[" et "]").

Le wizard s'achève mais nous devons modifier la configuration pour:

  1. spécifier un utilisateur/mot de passe pour se connecter au serveur de mail d'OVH, le relay host
  2. réécrire les adresses mails locales en adresses mails de votre domaine (ex: user@myserver.mylocaldomain → user@mydomain.com) car le relay host n'accepte que les adresses de votre domaine.
  3. faire en sorte que les mails pour root soient transférés à votre adresse mail
  4. un petit hack pour afficher un nom sympa lors de la réception du mail

Configurer les credentials du relay host

editez le /etc/postfix/main.cf et ajoutez ces lignes

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

maintenant créez le fichier /etc/postfix/sasl_password


[ ssl0.ovh.net]:587 user@mydomain.com:mot_de_passe


Limitez l'accès au fichier:


sudo chmod go-rwx /etc/postfix/sasl_password


Et créez la map pour postfix:


sudo postmap /etc/postfix/sasl_password


Vous devriez avoir un nouveau fichier sasl_password.db

Réécrire les adresses mail locales:

Ajoutez ceci à la configuration de postfix (/etc/postfix/main.cf):

sender_canonical_maps = hash:/etc/postfix/sender_canonical

Créez le fichier sender_canonical, il faut mettre les noms de domaines locaux et leur correspondance dans le fichier. Le plus simple est de lancer la commande hostname​ et hostname -f​ . Chez moi ça donne ceci:

# hostname
fijoosrv02
# hostname -f
fijoosrv02.tiffanet

Dans le fichier sender_canonical mettez ceci:

@myhostname @mydomain.com
@myhostname.localdomain @mydomain.com

A nouveau, il faut créer la map

sudo chmod go-rwx /etc/postfix/sender_canonical
sudo postmap /etc/postfix/sender_canonical

Transférer les mails de root

Il suffit d'ajouter une ligne dans le fichier /etc/aliases, lequel est déjà existant:

root: user@mydomain.com

Et lancer la commande newaliases

Hack pour afficher un nom d'expéditeur:

Quand vous enverrez des mails depuis votre serveur, ils partirons avec l'adresse userlocal@mydomain.com, par exemple root@mydomain.com et le nom de l'envoyeur sera simplement "root". Mais si vous avez plusieurs serveurs, ça pourrait être utile d'avoir "root on myhostname".

Pour cela nous allons changer le gecos des utilisateurs avec la commande chfn​:

sudo chfn -f "root on $(hostname)" root

Refaites pour tous les utilisateurs susceptibles d'envoyer des mails.

Tester la configuration

Tout d'abord il faut redémarrer le service postfix:

sudo systemctl restart postfix

Regardez les logs du serveur, selon la version il écrira dans /var/log/mail.log ou via journalctl:

tail -f /var/log/mail.log
# ou
sudo journalctl -xfu postfix.service

Envoyez un mail:

echo "hello world" | mail -s "test subject" someone@example.com

Vous devriez avoir reçu le mail (vérifiez qu'il n'est pas dans les spams):

Surveillez les logs pour voir ce qui se passe, en particulier:

  • les erreurs liées à l'authentification
  • les lignes avec from=<...@...>​  le nom de domaine derrière le @ doit correspondre à ce que vous avez indiqué dans le fichier sender_canonical. Si ce n'est pas le cas, ajustez le ficher sender_canonical pour prendre en compte ce nom de domaine et relancez la commande postmap sender_canonical​, pas besoin de relancer le service.

Testez aussi les envois de mails à root, ils doivent arriver dans la boîte mail spécifiée dans /etc/aliases (ex: echo "test" | mail -s "test" root​).

Il se peut qu'un mail soit renvoyé vers l'utilisateur, vous pouvez utiliser la commande mail​ sans argument pour voir les mails entrants pour votre utilisateur (pensez à tester aussi un sudo mail pour voir ceux de root)

Conclusions

Il est relativement simple de configurer un serveur de mail en mode "satellite" avec OVH, il faut juste connaître l'utilisateur et le mot de passe smtp. Il y a énormément de possibilités de configuration, pour mon utilisation c'est cette méthode qui a retenu mon attention.


Credits: