Il ricevitore di posta non funziona con alcune fonti di email

Sto davvero lottando per far funzionare in modo affidabile il container mail-receiver. Sono al punto in cui funziona come previsto per le risposte inviate dal mio account GMail personale, ma rifiuta le e-mail inviate dalla webapp Office 365 del mio datore di lavoro. Non riesco a capire se si tratta di un problema di configurazione da parte mia o di qualcosa di strano nel modo in cui il mio datore di lavoro instrada le e-mail.

Sono nuovo nell’analizzare l’output di ./launcher logs mail-receiver, ma penso che questo estratto dimostri la sequenza tipica di eventi durante una consegna fallita:

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

Sembra che il demone della policy spf non funzioni in base alla prima, seconda e ultima riga. Non riesco a trovare nulla di diagnostico sul perché non funzioni. Non sono nemmeno sicuro che sia necessario. Le e-mail da GMail sembrano passare senza problemi.

Sto auto-ospitando su un VPS con Cloudflare DNS e email transazionali da Brevo.

1 Mi Piace

Ho anche notato un numero piuttosto elevato di rimbalzi imprevedibili da fonti Microsoft 365 per molto tempo, il che è stato molto irritante dato che così tante aziende lo utilizzano. Finora non ho avuto successo nel rintracciare la fonte dei problemi.

Forse c’è un problema con mail-receiver come suggerisci; sarei lieto se ciò venisse indagato!

1 Mi Piace

Non sono sicuro se la colpa sia della mia configurazione, di quella del mio datore di lavoro o dell’app che riceve le email :person_shrugging:. Apprezzerei sicuramente qualsiasi suggerimento su come estrarre maggiori informazioni dal container.

1 Mi Piace

Qualcuno può dirmi come accedere al log di sistema grezzo proveniente dal container mail-receiver? Penso che ci dovrebbe essere un traceback dopo questa riga:

<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):

che viene eliminato? Forse mi sbaglio.

Questo sembra pertinente, ma temo di non capire come usarlo in pratica.

Ecco la risposta incollando l’intero contenuto di quelle righe di log su ask.Discourse.com

Risoluzione dei problemi di Postfix e Policyd-SPF AI

denvergeeks:

cosa indica questo errore:
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:

Ricerca

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

Sembra che i tuoi log di errore indichino problemi con postfix e policyd-spf. Nello specifico:

  1. Stato di uscita 120 per policyd-spf:

    • Questo di solito indica un problema nella configurazione o nei permessi di policyd-spf. Policyd-SPF viene utilizzato per convalidare le email in arrivo in base al Sender Policy Framework (SPF). Lo stato di uscita 120 spesso significa un errore dell’applicazione o l’incapacità di elaborare i requisiti di convalida SPF.
  2. Timeout della connessione a private/policyd-spf:

    • Questo si verifica quando postfix non riesce a comunicare con il servizio policyd-spf, probabilmente a causa di:
      • Percorso o configurazione errati per il socket di comunicazione.
      • Il processo spawn per policyd-spf non è configurato correttamente o non riesce a inizializzare.
  3. Rifiuto RCPT con stato 451:

    • L’indirizzo email del destinatario viene rifiutato a causa di un “problema di configurazione del server”. Ciò suggerisce che, a causa del fallimento della convalida SPF, postfix non è in grado di accettare il destinatario.

Passaggi per la risoluzione:

  1. Controllare la configurazione di policyd-spf:

    • Assicurarsi che le configurazioni relative all’SPF in /etc/postfix/main.cf (o equivalente) puntino al servizio di policy corretto:
      policy-spf unix - n n - - spawn
        user=nobody argv=/usr/bin/policyd-spf
      
    • Se il percorso del comando argv (/usr/bin/policyd-spf) non è corretto, modificarlo.
  2. Servizio e log:

    • Riavviare il servizio policyd-spf:
      systemctl restart policyd-spf
      
    • Esaminare ulteriormente i log per policyd-spf per individuare problemi specifici:
      journalctl -u policyd-spf
      
  3. Configurazione di Postfix:

    • Assicurarsi che postfix utilizzi correttamente policyd-spf. In /etc/postfix/master.cf, convalidare:
      smtp      inet  n       -       n       -       -       smtpd
        -o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination,check_policy_service=unix:private/policyd-spf
      
    • Verificare i permessi dei file per /etc/postfix e i percorsi dei socket.
  4. Testare SPF:

    • Provare a convalidare manualmente un record SPF utilizzando strumenti esterni o tramite CLI (comando dig):
      dig +short txt yourdomain.com
      
      • Assicurarsi che i record SPF della tua email siano corretti.
  5. Comunicazione del socket:

    • Verificare se il socket private/policyd-spf esiste ed è accessibile:
      ls /var/spool/postfix/private/policyd-spf
      # Regolare i permessi se il file esiste:
      chown postfix:postfix /var/spool/postfix/private/policyd-spf
      chmod 770 /var/spool/postfix/private/policyd-spf
      
    • Ricollegare o ricreare il file del socket Unix se mancante.
  6. Errori di configurazione:

    • Esaminare i parametri predefiniti in /etc/policyd-spf/policyd-spf.conf e confermare la correttezza rispetto al tuo caso d’uso.
  7. Riavviare tutti i servizi correlati:

    systemctl restart postfix
    systemctl restart policyd-spf
    

Se continui a riscontrare problemi oltre alle modifiche di configurazione, contatta il tuo provider di hosting o il supporto di Discourse per garantire la salute del server e le corrette impostazioni di connettività. Puoi anche esplorare ulteriormente la documentazione esterna sui problemi SPF o i forum della community di postfix/policyd.

E qui c’è un link alla risposta di Perplexity.ai…

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

Ho provato quello che potevo in base a queste risposte, ma niente sembra risolvere il problema. Penso che la cosa più utile sarebbe se qualcuno potesse dirmi come inserire il contenuto dei traceback di Python da policyd-spf nei file di log. Qualche suggerimento? È solo un depistaggio?