Le récepteur de mails ne fonctionne pas avec certaines sources de courrier

J’ai vraiment du mal à faire fonctionner le conteneur mail-receiver de manière fiable. J’en suis au point où il fonctionne comme prévu pour les réponses envoyées depuis mon compte GMail personnel, mais il rejette les e-mails envoyés depuis l’application web Office 365 de mon employeur. Je ne peux pas dire s’il s’agit d’un problème de configuration de mon côté ou de quelque chose d’étrange dans la façon dont mon employeur achemine les e-mails.

Je suis nouveau dans l’examen de la sortie de ./launcher logs mail-receiver, mais je pense que cet extrait démontre la séquence typique d’événements lors d’une livraison échouée :

Jan 27 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=<me@employer.tld> to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld" from client "mail-server.employer.tld[XX.XXX.XX.XX]"
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6

<22>Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld <22>Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
Jan 27 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120

Il semble que le démon de politique spf ne fonctionne pas, d’après les première, deuxième et dernières lignes. Je n’ai rien trouvé de diagnostique quant à la raison pour laquelle il ne fonctionne pas. Je ne suis pas non plus sûr qu’il soit nécessaire. Les e-mails de GMail semblent passer sans problème.

J’auto-héberge sur un VPS avec Cloudflare DNS et l’e-mail transactionnel de Brevo.

1 « J'aime »

J’ai également remarqué un nombre considérable de rebonds imprévisibles provenant de sources Microsoft 365 sur une longue période, ce qui a été très irritant étant donné le grand nombre d’entreprises qui l’utilisent. Jusqu’à présent, je n’ai eu aucune chance de remonter à la source pour résoudre ces problèmes.

Peut-être y a-t-il un problème avec mail-receiver, comme vous le suggérez ; je serais ravi que cela fasse l’objet d’une enquête !

1 « J'aime »

Je ne sais pas si ma configuration, celle de mon employeur ou l’application de réception de courriels sont à blâmer :person_shrugging:. J’apprécierais vraiment toute suggestion sur la façon d’obtenir plus d’informations du conteneur.

1 « J'aime »

Quelqu’un peut-il me dire comment accéder au journal système brut provenant du conteneur mail-receiver ? Je pense qu’il est censé y avoir une trace après cette ligne :

<22>Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld <22>Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):

qui est effacée ? Peut-être que je me trompe.

Ceci semble pertinent, mais je crains de ne pas comprendre comment l’utiliser en pratique.

Voici la réponse obtenue en collant l’intégralité de ces lignes du journal dans ask.Discourse.com

Dépannage des problèmes Postfix et Policyd-SPF AI

denvergeeks:

ce que cet erreur indique :
Jan 27 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=me@employer.tld to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient “4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld” from client “mail-server.employer.tld[XX.XXX.XX.XX]”
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6

Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld
Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
Jan 27 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120

DiscourseHelper:

Recherche

Recherche pour : postfix policyd-spf exit status 120 server configuration problem connection timed out reason and solution

Il semble que vos journaux d’erreurs indiquent des problèmes avec postfix et policyd-spf. Plus précisément :

  1. Statut de sortie 120 pour policyd-spf :

    • Cela indique généralement un problème dans la configuration ou les permissions de policyd-spf. Policyd-SPF est utilisé pour valider les e-mails entrants en fonction du Sender Policy Framework (SPF). Le statut de sortie 120 signifie souvent une erreur d’application ou l’incapacité de traiter les exigences de validation SPF.
  2. Délai de connexion à private/policyd-spf :

    • Cela se produit lorsque postfix ne peut pas communiquer avec le service policyd-spf, probablement en raison de :
      • Un chemin ou une configuration incorrecte pour le socket de communication.
      • Le processus spawn pour policyd-spf n’est pas correctement configuré ou échoue à s’initialiser.
  3. Rejet RCPT avec le statut 451 :

    • L’adresse e-mail du destinataire est rejetée en raison d’un “problème de configuration du serveur”. Cela suggère qu’en raison de l’échec de la validation SPF, postfix ne peut pas accepter le destinataire.

Étapes pour résoudre le problème :

  1. Vérifier la configuration de policyd-spf :

    • Assurez-vous que les configurations liées au SPF dans /etc/postfix/main.cf (ou équivalent) pointent vers le bon service de politique :
      policy-spf unix - n n - - spawn
        user=nobody argv=/usr/bin/policyd-spf
      
    • Si le chemin de la commande argv (/usr/bin/policyd-spf) est incorrect, ajustez-le.
  2. Service et journaux :

    • Redémarrez le service policyd-spf :
      systemctl restart policyd-spf
      
    • Examinez les journaux supplémentaires pour policyd-spf afin d’identifier les problèmes spécifiques :
      journalctl -u policyd-spf
      
  3. Configuration de Postfix :

    • Assurez-vous que postfix utilise correctement policyd-spf. Dans /etc/postfix/master.cf, validez :
      smtp      inet  n       -       n       -       -       smtpd
      -o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination,check_policy_service=unix:private/policyd-spf
      
    • Vérifiez les permissions des fichiers pour /etc/postfix et les chemins des sockets.
  4. Tester le SPF :

    • Essayez de valider manuellement un enregistrement SPF à l’aide d’outils externes ou via la ligne de commande (dig command) :
      dig +short txt yourdomain.com
      
    • Assurez-vous que vos enregistrements SPF de messagerie sont corrects.
  5. Communication par socket :

    • Vérifiez si le socket private/policyd-spf existe et est accessible :
      ls /var/spool/postfix/private/policyd-spf
      # Ajustez les permissions si le fichier existe :
      chown postfix:postfix /var/spool/postfix/private/policyd-spf
      chmod 770 /var/spool/postfix/private/policyd-spf
      
    • Reliez ou recréez le fichier de socket Unix s’il est manquant.
  6. Erreurs de configuration :

    • Examinez les paramètres par défaut dans /etc/policyd-spf/policyd-spf.conf, et confirmez leur exactitude par rapport à votre cas d’utilisation.
  7. Redémarrer tous les services associés :

    systemctl restart postfix
    systemctl restart policyd-spf
    

Si vous continuez à rencontrer des problèmes au-delà des changements de configuration, contactez votre fournisseur d’hébergement ou le support Discourse pour vous assurer de la bonne santé du serveur et des paramètres de connectivité corrects. Vous pouvez également explorer davantage la documentation externe sur les problèmes SPF ou les forums communautaires postfix/policyd.

Et voici un lien vers la réponse de Perplexity.ai…

https://www.perplexity.ai/search/what-this-error-indicates-jan-fWurGemCTTezCPLfLNNSMg

J’ai essayé tout ce que j’ai pu en me basant sur ces réponses, mais rien ne semble résoudre le problème. Je pense que ce qui serait le plus utile, c’est si quelqu’un pouvait me dire comment obtenir le contenu des tracebacks Python de policyd-spf dans les fichiers journaux. Des suggestions ? Est-ce juste une fausse piste ?