Erro de protocolo Postfix ao tentar a validação do endereço de e-mail com o SMTP

2

Eu tenho um código que faz uma validação de endereço de e-mail. Ele funciona tentando uma entrega de correio via SMTP e, em seguida, sair sem enviar nada. Funciona na maior parte do tempo, mas em alguns casos periféricos isso não acontece. Eu tenho um desses casos e gostaria de saber se alguém tem uma pista sobre o que o servidor de e-mail pode estar insatisfeito com a minha solicitação?

Aqui está a sessão TCP na porta 25 para smtp.hp.com (substituímos endereços de e-mail reais aqui)

220-g1t6210.austin.hp.com ESMTP Postfix
HELO ednasmtp.beweb.co.nz
250 g1t6210.austin.hp.com
MAIL FROM: <[email protected]>
250 2.1.0 Ok
RCPT TO: <[email protected]>
550 5.5.1 Protocol error
QUIT
550 5.5.1 Protocol error

Minha pergunta é: por que o servidor de postfix da HP está dizendo "Erro de protocolo"? Minha entrega de e-mails não é válida?

    
por mike nelson 21.04.2018 / 23:03

2 respostas

4

smtp.hp.com resolve 4 endereços IP diferentes. Cada um deles responde ao SMTP, mas eles são configurados de maneiras diferentes. Sem saber qual dos 4 que você conectou é difícil dizer exatamente porque falhou. Mas eu posso passar por cima da sua sessão passo a passo e explicar vários erros cometidos pelo cliente ao longo do caminho.

220-g1t6210.austin.hp.com ESMTP Postfix

Esta é uma mensagem de status parcial do servidor, conforme indicado pelo - . A última linha do status terá um nesse local. 3 dos 4 servidores SMTP respondem com uma mensagem de status de 2 linhas com um atraso entre as duas linhas. Um deles responde com uma mensagem de status de 1 linha, que exclui essa como tendo lidado com sua sessão. O cliente precisará continuar lendo a mensagem de status até que tenha visto tudo.

HELO ednasmtp.beweb.co.nz

Neste ponto, o cliente viola o protocolo enviando um comando antes de receber o status completo.

250 g1t6210.austin.hp.com

Aqui, o servidor viola o protocolo enviando um código de status diferente do que um cliente compatível com os padrões interpretaria como continuação da linha de status 220- acima.

MAIL FROM: <[email protected]>

Aqui, o cliente viola o protocolo pelo espaço estranho entre : e < . Um espaço nunca é permitido nesse local, embora existam servidores de correio que irão ignorar esse espaço e permitir que a transação continue.

250 2.1.0 Ok
RCPT TO: <[email protected]>

Aqui, o cliente viola o protocolo novamente da mesma maneira que no comando MAIL .

550 5.5.1 Protocol error

Está correto que houve um erro de protocolo. É difícil dizer qual dos erros de protocolo mencionados acima está reclamando. O comando RCPT em si é incorreto, mas não sofre nenhum erro que não tenha sido visto anteriormente na transação também.

QUIT
550 5.5.1 Protocol error

Neste ponto, é difícil adivinhar qual lado fechou a conexão. E dado que ambos os lados violaram o protocolo, provavelmente não é mais importante. Não podemos nem mesmo saber quais códigos de status se aplicam a quais comandos.

    
por 22.04.2018 / 13:05
3

Seu host não está recebendo várias verificações que podem ser esperadas de um servidor de e-mail:

  • Falha na validação do rDNS para o nome apresentado acima.
  • Não possui registro SPF (uma política simples de "v = spf1 a -all" seria apropriada ".
  • O domínio de envio não possui registro DKIM ou DMARC.

Se você estiver fazendo a validação de endereço, poderá estar acionando qualquer número de técnicas de prevenção de spam. Embora no passado a validação de endereço tenha sido geralmente permitida, os remetentes de spam fizeram com que a validação dos resultados fosse restrita. Corrigir os itens acima pode ajudar, mas eu não contaria com isso.

Atualmente, a única validação de endereço amplamente suportada é enviar um email com um link de validação para o usuário confirmar seu endereço.

Você pode querer revisar as postagens canônicas no email e no postfix.

    
por 22.04.2018 / 01:19