Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/05/2021, à 15:50

Daav

[Résolu] Un postfix vers un autre - la cafouille

Bonjour,

J'ai un petit problème qui doit avoir une solution tellement évidente que je ne l'ai pas trouvée.
J'ai mis en place un serveur Postfix qui envoie et reçoit du courrier de l'extérieur. Il fonctionne très bien, tout va bien de ce coté là. Je vous passe donc les détails avec Dovecot et tout ce qui va avec. La chose à savoir, c'est que ce serveur est configuré pour des utilisateurs virtuels enregistrés en base de données (MariaDb). La directive relayhost indique le serveur SMTP de mon fournisseur d'accès.
Sur cette machine, même php envoie des mails sans problème. Pour être clair, appelons cette machine mail.exemple.com.

J'ai un ordinateur portable qui me sert pour développer. J'y ai aussi installé un postfix configuré de façon basique. Pour l'exemple, le nom d'hôte de cette machine est dev.exemple.com.

Comme je développe en PHP, j'utilise la fonction mail() et j'ai besoin que le courrier soit envoyé. J'ai bien paramétré mon php.ini (sendmail_path) et la fonction mail() de PHP trouve bien sa route. J'ai aussi ajouté à la directive "relayhost = mail.exemple.com" puisque c'est la route à emprunter pour envoyer le mail vers l'extérieur. Mon problème, enfin la chose que je ne sais pas encore faire, c'est rediriger les mails provenant de dev.exemple.com vers le serveur mail mail.exemple.com pour ensuite permettre au courrier de sortir parcourir le monde pour arriver dans la boite mail du destinataire. Avec certains essais, le courrier ne sort pas de dev, avec d'autres essais c'est mail qui refuse et finalement c'est toujours le provider qui refuse d'envoyer le courrier. En revanche, je reçois des notifications de courrier non délivré.

Quand le mail tente de sortir, c'est au format utilisateur@machine.domaine.tld. Je comprends bien que ce format n'est pas valide dans bien des cas. J'ai essayé sender_canonical_maps sur le poste <dev>: l'adresse d'émetteur reste la même quand elle arrive sur <mail> (www-data@dev.exemple.com). J'ai essayé sender_canonical_maps sur <mail>: même résultat. Systématiquement, notification de non distribution.

Alors il doit y avoir un détail que j'ai oublié ou que je ne connais pas. C'est un contexte simple avec une machine qui développe et ne fait qu'envoyer du courrier sans en recevoir et une autre machine qui fait le lien avec l'extérieur et qui doit relayer les mails de la première.
Si vous avez une piste, ça serait vraiment chouette.

D'avance merci

Hors ligne

#2 Le 03/06/2021, à 12:03

bruno

Re : [Résolu] Un postfix vers un autre - la cafouille

Bonjour,

Pour qu'un serveur de courriel accepte de servir de relais il faut que la machine, ou l'utilisateur, qui s'y connecte soit explicitement autorisé (sinon c'est un relas ouvert). Il faut donc soit une autorisation par IP (mynetworks avec Postfix), soit un accès authentifié (SASL) sur le port 587 ou 465.

N.B : Pour simplement envoyer des courriels vers l'extérieur il y a des solutions moins complexes que postfix en mode relais : msmtp, swaks, …

Hors ligne

#3 Le 04/06/2021, à 19:36

Daav

Re : [Résolu] Un postfix vers un autre - la cafouille

Bonjour à toi,
Je n'ai même pas été avisé d'une réponse. Je vais voir ça après.

Merci à toi pour ta réponse tout à fait pertinente. Et puis j'ai résolu le problème il y a dix minutes après quelques jours de "aut'chose à fout'".

En fait, il me suffisait d'ajouter un sender_canonical_maps qui cible en hash un fichier dont le format est simplement adressse@local  adresseexterieure@dehors.fr, sans oublier de postmaper le bidule
On passe aussi par un sasl_password dont le fichier sera au format $relayhost  utilisateur:motdepasse. Postmapage qui va bien, sans oublier donc de renseigner le serveur qui gère "dehors.fr" dans la variable relayhost.
Les quelques baratins smtp_sasl qui vont bien, et p'is vala.

Sur le serveur qui gère dehors.fr, on a juste à ajouter dans les utilisateurs virtuels notre fameux adresseexterieure@dehors.fr et c'est fini.

Donc maintenant, pendant que je developpe en php sur mon p'tit portable qu'a même pas de clavier numérique , je peux utiliser la fonction mail() en transformant mon www-data@dedans par adresseexterieure@dehors.fr. Et bien sûr au passage, les spf et autres DKIM qui ont mouliné le mail chez dehors.fr. Tout benef'!

Merci de ton aide en tout cas

PS: je ne sais pas où on passe le ticket en résolu...

Hors ligne