Refatorando os e-mails: saída da tarefa rake de teste

Revisei recentemente os emails:task e o código relacionado com o objetivo de testar todos os caminhos de falha e retocar o texto de erro.

Também descobri que os efeitos de definir DISCOURSE_SMTP_ENABLE_STARTTLS=false são (na maioria) nulos. Definir isso não desativou realmente o STARTTLS e, de fato, ele pode coexistir perfeitamente com TLS no momento da conexão (DISCOURSE_SMTP_FORCE_TLS=true).

Então eu:

Antes de mesclar isso, acho que um aviso de administrador no painel para quando DISCOURSE_SMTP_ENABLE_STARTTLS=false for definido é adequado. Imagino que haja pelo menos um auto-hospedeiro que definiu isso, mas não precisa e está realmente confiando no STARTTLS.

4 curtidas

Isso parece um bom trabalho! Uma coisa que eu (acho que) notei é que a tarefa rake não usa o mesmo código que o envio real (como da página de teste de e-mail /admin/email). Tenho quase certeza de que tive um caso em que funcionou no UX, mas não na tarefa rake (ou talvez tenha sido o contrário?)

Enquanto isso está fresco em sua mente, se você pudesse ver que, pelo menos quando realmente envia, o faz usando o mesmo código que o Discourse, seria ótimo.

2 curtidas

Também estamos trabalhando nisso, e em melhorar o log quando um trabalho de e-mail em fila falha. :+1:

4 curtidas

Há algo que eu precise fazer no fórum que você hospeda?

4 curtidas

Não, este alerta não deve aparecer em nossa hospedagem. Vamos corrigir, obrigado pelo relatório como sempre.

5 curtidas

@supermathie vale a pena enviar uma mensagem privada para todos os administradores em todos os sites que têm essa variável definida? Nosso sistema atual de verificação de problemas fará isso, e não tenho certeza se é garantido aqui, dado que, na maioria das vezes, isso tem um efeito nil. Idealmente, eu gostaria de mostrar isso apenas no painel sem notificar os usuários administradores, não tenho certeza se nossa estrutura atual de verificação de problemas suporta esse caso de uso.

Eu acho que sim - acho extremamente provável que, dada a confusão de muitos administradores com a configuração de e-mail, alguém tenha essa variável definida quando na verdade depende do starttls.

Ninguém deveria tê-la definida, provavelmente.

Prefiro ter um aviso espúrio do que quebrar silenciosamente a configuração de e-mail de alguém.

A alternativa é remover a verificação e neutralizar a variável para que ela não faça nada.

1 curtida

Seria bom se o aviso não aparecesse quando o servidor SMTP de saída for localhost (ou seja, corresponder ao nome de domínio do Discourse), pois o TLS entre o contêiner Docker e o host não é necessário, já que eles estão na mesma máquina.

1 curtida

Neste caso, você pode remover a variável do ambiente.

Ele só usará STARTTLS se for oferecido.

1 curtida