SMTP para grupo: erro de número de versão incorreto do SSL

Olá,

Estou tentando implementar o SMTP para grupos, mas continuo recebendo a seguinte mensagem de erro.

image

No entanto, estou usando o mesmo servidor SMTP que a instância usa e recebo a mesma mensagem de erro, mesmo se usar as mesmas credenciais especificadas no meu arquivo app.yml… Não entendo por que ele está se comportando de forma diferente: os e-mails são enviados perfeitamente com as credenciais padrão.

Nos logs do meu servidor SMTP, vejo uma conexão vindo do servidor Discourse, então tenho a seguinte mensagem:

smtp bad-input result=“500 5.5.1 Invalid command: Pipelining not supported”
smtp disconnected reason=“io-error: Connection reset by peer”

1 curtida

Suspeito que o Discourse esteja tentando se conectar ao servidor SMTP com TLS em vez de STARTTLS.

Você pode tirar um print das configurações relevantes?

Por favor, oculte nomes de host e nomes de usuário específicos, mas deixe as informações de porta e outras configurações.

1 curtida

A configuração é bastante clássica: porta 587 usual e starttls é verdadeiro (valor padrão)

Configuração geral:

para o grupo smtp:

Fiz alguns tcpdump para ver o que está acontecendo e estou notando 3 comportamentos diferentes. Para os dois primeiros casos, é exatamente como descrito neste tópico.

  1. Uso normal

Usuários criam tópicos, respondem, etc. outros usuários recebem notificações por e-mail como esperado
Além disso, usando o teste de envio de e-mail através da interface de administração: nenhum problema, é bem enviado e bem recebido

com tcpdump podemos ver que há uma sequência correta, conectando-se via STARTTLS, etc.

  1. Discourse-doctor e rake

usando discourse-doctor ou rake emails:test
O e-mail não é enviado e recebo um erro: 503 5.5.1 Invalid command: Command not supported

  1. smtp de grupo

Ao testar o smtp de grupo, vejo um pacote “DATA fragment” vindo do Discourse imediatamente após o handshake tcp, ao qual o servidor smtp responde com 220 xxxxxxx ESMTP OpenSMTPD seguido por uma mensagem 500 5.5.1 Invalid command: Pipelining not supported

1 curtida

587 suportará STARTTLS, mas não TLS (no momento da conexão).

Devemos alterar as opções aqui para permitir STARTTLS.

Se você desmarcar “Usar SSL para SMTP”, funcionará?

Infelizmente, não, não funciona.
Desmarcar “Usar SSL para SMTP” me dá a seguinte mensagem de erro:

image

O que é estranho porque sei que minhas credenciais estão corretas.

Analisando com tcpdump, ele se comporta como expliquei para o caso “Discourse-doctor e rake”.
As trocas entre o Discourse e o servidor smtp parecem as seguintes:

< 220 [redacted] ESMTP ready
> EHLO [redacted]
< 250-[redacted]
< 250-PIPELINING
< 250-SIZE 36700160
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command : commande not supported

É como se o Discourse não estivesse tentando iniciar STARTTLS; é exatamente como descrito na postagem que linkei na minha postagem anterior.

Estou tendo o mesmo problema ao tentar configurar o Discourse SMTP para funcionar com um endereço de e-mail do ImprovMX.

Alguma ideia @supermathie?