Je me perds un peu dans la configuration de mon serveur pour envoyer des mails vers l’extérieur (entendez, hors de mon réseau local).
Ma configuration est un peu particulière :
J’ai un nom de domaine réservé chez OVH.
J’ai un serveur auto-hébergé derrière ma box.
J’ai donc, via mon interface OVH, configuré deux entrées DNS de type A (mondomaine.com et www.mondomaine.com) qui pointent vers l’IP publique de ma box.
En revanche, par choix, je n’auto-héberge pas de serveur de mails. J’ai souscrit à l’offre mail d’OVH. J’ai donc les entrées MX correspondantes : 1 mx1.ovh.net, 5 mx2.ovh.net, 100 mxb.ovh.net pour mondomaine.com.
Ce qui fait que la commande host mondomaine.com renvoie :
$ host mondomaine.com
mondomaine.com has address xxx.xxx.xxx.xxx
mondomaine.com mail is handled by 1 mx1.ovh.net.
mondomaine.com mail is handled by 5 mx2.ovh.net.
mondomaine.com mail is handled by 100 mxb.ovh.net.
Dans cette configuration, comment envisager d’envoyer des mails depuis mon serveur auto-hébergé, vers mon adresse OVH de type admin@mondomaine.com ? Je n’ai réussi ni avec Exim ni avec la fonction mail() de PHP.
Je te conseille ssmtp. ssmtp est un petit outil qui prend la place d’exim4 pour la gestion des e-mails.
Il me semble qu’il y a une configuration par défaut à l’installation du paquet qui te suffira.
Instal un MTA (Exim, Postfix, …) et dit lui de passer par un relay qui sera ton serveur de mail chez OVH et configure ce dernier pour accepter les mails venant de ton serveur auto-hébergé.
Pour l’instant j’ai préféré me débattre avec Exim, et je suis tombé sur ce tuto qui m’a bien aiguillé sur la façon de relayer les mails vers un SMTP extérieur (OVH en l’occurrence).
La bonne nouvelle : ça fonctionne quand j’envoie un mail vers Gmail (echo "Test" | mail moi@gmail.com).
La mauvaise : ça ne fonctionne pas quand j’envoie un mail vers mon propre domaine (echo "Test" | mail moi@mondomaine.com). Je me mange un “Unrouteable address”.
Extrait de /var/log/exim4/mainlog après envoi vers Gmail :
Pour info, des fois que ce soit pertinent, /etc/hostname et /etc/mailname contiennent bien mon FQDN (mondomaine.com). Dans /etc/hosts, j’ai également ajouté mon FQDN en regard des adresses locales IPv4 et v6 (127.0.0.1 et ::1).
Quand je lance exim -bt moi@gmail.com, je récupère :
# exim -bt moi@gmail.com
R: smarthost for moi@gmail.com
moi@gmail.com
router = smarthost, transport = remote_smtp_smarthost
host ssl0.ovh.net [213.186.33.20] port=465
Mais quand je lance exim -bt moi@mondomaine.com :
# exim -bt moi@mondomaine.com
R: system_aliases for moi@mondomaine.com
moi@mondomaine.com is undeliverable: Unrouteable address
Ce qui me confirme donc que quand j’essaie d’envoyer un mail vers une adresse @mondomaine.com, il prend ça pour une adresse locale et n’utilise pas le smarthost. Je fouille partout, mais je ne trouve pas comment m’y prendre pour régler ça .
Bon, c’est un peu de la bidouille mais effectivement en changeant mon hostname et mon mailname, il accepte de passer par le relais. Je me satisferai de ça !
C’est étrange !
J’ai un vps sous debian 8. Je lui ai installé postfix, et sans rien configurer, sans éditer le moindre fichier de config, la commande que tu sites à fonctionner pour moi …
Je confirme, c’est très pratique, surtout lorsque l’on a pas de nom de domaine, et pour seul accès internet une box dont on a même pas les accès admin.