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.
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!
Non sono sicuro se la colpa sia della mia configurazione, di quella del mio datore di lavoro o dell’app che riceve le email . Apprezzerei sicuramente qualsiasi suggerimento su come estrarre maggiori informazioni dal container.
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:
Ecco la risposta incollando l’intero contenuto di quelle righe di log su ask.Discourse.com…
Risoluzione dei problemi di Postfix e Policyd-SPFAI
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:
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.
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.
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:
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.
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
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.
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.
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.
Errori di configurazione:
Esaminare i parametri predefiniti in /etc/policyd-spf/policyd-spf.conf e confermare la correttezza rispetto al tuo caso d’uso.
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.
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?