O destinatário de e-mail não funciona com algumas fontes de e-mail

Estou tendo muita dificuldade em fazer o contêiner mail-receiver funcionar de forma confiável. Cheguei ao ponto em que ele funciona como pretendido para respostas enviadas da minha conta pessoal do GMail, mas rejeita e-mails enviados do aplicativo web Office 365 do meu empregador. Não consigo dizer se é um problema de configuração da minha parte ou algo estranho sobre como meu empregador roteia e-mails.

Sou novo em analisar a saída de ./launcher logs mail-receiver, mas acho que este trecho demonstra a sequência típica de eventos durante uma entrega falha:

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

Parece que o daemon de política SPF não está funcionando com base nas primeiras, segundas e últimas linhas. Não consigo encontrar nada diagnóstico sobre por que ele não está funcionando. Também não tenho certeza se é necessário. E-mails do GMail parecem passar sem problemas.

Estou auto-hospedando em um VPS com Cloudflare DNS e e-mail transacional da Brevo.

1 curtida

Também notei muitos e-mails de fontes do Microsoft 365 com devoluções imprevisíveis por um longo tempo, o que tem sido muito irritante, já que tantas empresas o utilizam. Até agora, não tive sorte em rastrear a origem dos problemas.

Talvez haja um problema com o mail-receiver, como você sugere; ficaria muito satisfeito se isso fosse investigado!

1 curtida

Não tenho certeza se a culpa é da minha configuração, do meu empregador ou do aplicativo receptor de e-mail :person_shrugging:. Eu definitivamente apreciaria qualquer sugestão sobre como extrair mais informações do contêiner.

1 curtida

Alguém pode me dizer como acessar o log bruto do sistema vindo do contêiner mail-receiver? Acho que deveria haver um traceback após esta linha:

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

que está sendo removido? Talvez eu esteja enganado.

Isto parece relevante, mas receio não entender como usá-lo na prática.

Aqui está a resposta ao colar a totalidade dessas linhas do log em ask.Discourse.com

Solução de problemas de Postfix e Policyd-SPF AI

denvergeeks:

o que este erro indica:
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:

Pesquisando

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

Parece que seus logs de erro indicam problemas com postfix e policyd-spf. Especificamente:

  1. Status de Saída 120 para policyd-spf:

    • Isso geralmente aponta para um problema na configuração ou nas permissões do policyd-spf. Policyd-SPF é usado para validar e-mails recebidos com base no Sender Policy Framework (SPF). O status de saída 120 geralmente significa um erro de aplicação ou incapacidade de processar os requisitos de validação SPF.
  2. Tempo Limite de Conexão com private/policyd-spf:

    • Isso ocorre quando o postfix não consegue se comunicar com o serviço policyd-spf, provavelmente devido a:
      • Caminho ou configuração inválida para o socket de comunicação.
      • O processo spawn para policyd-spf não está configurado corretamente ou falha ao inicializar.
  3. Rejeição RCPT com Status 451:

    • O endereço de e-mail do destinatário é rejeitado devido a um “problema de configuração do servidor”. Isso sugere que, devido à falha na validação SPF, o postfix não consegue aceitar o destinatário.

Etapas para Resolver:

  1. Verifique a Configuração do policyd-spf:

    • Certifique-se de que as configurações relacionadas ao SPF em /etc/postfix/main.cf (ou equivalente) estejam apontando para o serviço de política correto:
      policy-spf unix - n n - - spawn
        user=nobody argv=/usr/bin/policyd-spf
      
    • Se o caminho do comando argv (/usr/bin/policyd-spf) estiver incorreto, ajuste-o.
  2. Serviço e Logs:

    • Reinicie o serviço policyd-spf:
      systemctl restart policyd-spf
      
    • Revise logs adicionais para policyd-spf para identificar problemas específicos:
      journalctl -u policyd-spf
      
  3. Configuração do Postfix:

    • Certifique-se de que o postfix esteja usando corretamente o policyd-spf. Em /etc/postfix/master.cf, valide:
      smtp      inet  n       -       n       -       -       smtpd
      -o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination,check_policy_service=unix:private/policyd-spf
      
    • Verifique as permissões de arquivo para /etc/postfix e os caminhos do socket.
  4. Teste o SPF:

    • Tente validar manualmente um registro SPF usando ferramentas externas ou via CLI (comando dig):
      dig +short txt seu_dominio.com
      
    • Certifique-se de que seus registros SPF de e-mail estejam corretos.
  5. Comunicação do Socket:

    • Verifique se o socket private/policyd-spf existe e é acessível:
      ls /var/spool/postfix/private/policyd-spf
      # Ajuste as permissões se o arquivo existir:
      chown postfix:postfix /var/spool/postfix/private/policyd-spf
      chmod 770 /var/spool/postfix/private/policyd-spf
      
    • Recrie ou recrie o arquivo de socket Unix se estiver faltando.
  6. Erros de Configuração:

    • Revise os parâmetros padrão em /etc/policyd-spf/policyd-spf.conf e confirme a correção em relação ao seu caso de uso.
  7. Reinicie Todos os Serviços Relacionados:

    systemctl restart postfix
    systemctl restart policyd-spf
    

Se você continuar enfrentando problemas além das alterações de configuração, entre em contato com seu provedor de hospedagem ou com o suporte do Discourse para garantir a integridade do servidor e as configurações de conectividade corretas. Você também pode explorar mais documentação externa sobre problemas de SPF ou fóruns da comunidade postfix/policyd.

E aqui está um link para a resposta do Perplexity.ai…

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

Tentei o que pude com base nessas respostas, mas nada parece resolver o problema. Acho que o mais útil seria se alguém pudesse me dizer como obter o conteúdo dos tracebacks do Python de policyd-spf nos arquivos de log. Alguma sugestão? Isso é apenas uma pista falsa?