Récupération du mail avec Fetchmail et Postfix après une redirection OVH
Je viens de passer mon DNS chez OVH et la récupération du mail ne fonctionnait plus.
Depuis des années, j’auto-héberge un bon nombre de services, dont le mail. Essentiellement du fait de ma crainte de ne pas recevoir des mails à cause d’un serveur en carafe trop longtemps, ma stratégie consiste à conserver des boites mails chez mon FAI ou autre et de récupérer ces mails par fetchmail. Et pour avoir une belle identité numérique, j’utilise les fonctions de redirection mail proposées par les fournisseurs de DNS.
Mais voilà, en passant chez OVH, ce système s’est mis à ne plus fonctionner. Le mail restait purement et simplement dans les boites aux lettre d’origine.
Analyse du problème
Au départ, on commence par les logs de fetchmail. On voit qu’il tente bien la récupération, mais quand il soumet le mail à postfix pour distribution, ce dernier refuse.
En regardant de plus près, on constate que les mails sont émis avec un Return-Path
) contenant l’adresse du destinataire et un suffixe +_redir
.
Donc une fois normalisée par postfix, cette adresse devient purement celle du destinataire.
Et ça, ça plait moyen à postfix à cause de reject_unauthenticated_sender_login_mismatch
inclus dans reject_sender_login_mismatch
et activé dans smtpd_sender_restrictions
.
Solution
Plutôt que de dégrader globalement la sécurité en retirant la règle incriminée, on va chercher à autoriser les clients locaux comme fetchmail.
On rajoute donc dans smtpd_sender_restrictions
avant reject_sender_login_mismatch
:
check_client_access hash:/etc/postfix/client_access,
Cette règle indique qu’il faut utiliser le fichier /etc/postfix/client_access
:
localhost local_only
127.0.0.1 local_only
Ce fichier doit être compilé :
sudo postmap /etc/postfix/client_access
Et voilà, y’a plus qu’à demander de recharger postfix.