Yunohost et SMTP externe

Depuis des années, j’ai un serveur local (auto-hébergé) qui gère mon mail. Or, ma confiance relative dans ce serveur ou sa disponibilité (pb électrique), fait que ce n’est pas lui qui sert de MX à mon domaine. Non, mon mail est redirigé par le gestionnaire de mon DNS vers les boites aux lettres de mon FAI. Ensuite, le courrier est récupéré avec fetchmail.

   +-----+    +-----+    +-----------+    +-------+
-> | DNS | -> | FAI | <- | fetchmail | -> | local |
   +-----+    +-----+    +-----------+    +-------+

Je trouve le compromis intéressant :

  • c’est mon propre serveur qui héberge mon mail, donc :
    • j’ai autant de place que je veux,
    • généralement j’y ai accès de partout : thunderbird local, smartphones, webmail
  • en cas de coupure de longue durée (vacances loin de chez moi) c’est la boite du FAI qui fait tampon et je peux y accéder.

Problème

Depuis que je suis passé à Yunohost, ce dernier a appliqué un réglage un peu plus strict de postfix. Et un nouveau problème est apparu : lorsqu’un utilisateur du réseau local envoi un mail à un autre utilisateur local en utilisant l’adresse mail proposée par le FAI, le mail n’est pas distribué.

Mar 28 18:00:28 home fetchmail[1943]: reading message user1@pop.fai.com:16 of 16 (2571 octets) (log message incomplete)
Mar 28 18:00:28 home fetchmail[1943]: SMTP error: 553 5.7.1 <user2@mydomain.com>: Sender address rejected: not logged in

A priori, postfix se rend compte qu’un mail (prétenduement) envoyé par un utilisateur local tente d’être délivré par quelqu’un d’externe. Vu qu’il considère être le seul à gérer le domaine, il refuse.

Solution

A priori, une solution consiste à indiquer à postfix que les utilisateurs ont des adresses externes, des alias. Et du coup, il pourrait considérer que le mail qu’il tente d’émettre ne doit pas être relayé en externe, mais distribué localement.

Yunohost supporte cette notion d’alias.

yunohost user update USERNAME --add-mailalias "USERNAMEALIAS@DOMAIN.TLD"

Mais pour une raison qui m’est inconue, un contrôle interdit d’utiliser des adresses alias dont le domaine n’est pas géré par Yunohost.

Du coup, j’ai adapté la configuration.

Dans /etc/postfix/virtual :

user1@fai.com user1
user2@fai.com user2

Dans /etc/postfix/main.cf :

virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf hash:/etc/postfix/virtual