Os emails: a tarefa rake não deve relatar entrega bem-sucedida quando o email estiver desativado

Similar a Email test area should warn if emails are disabled

Isso é enganoso:

$ rake 'emails:test[michael@example.com]'
Testing sending to michael@example.com using mx-out:25.
SMTP server connection successful.
Sending to michael@example.com. . . 
Mail accepted by SMTP server.

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.

Check the SMTP server logs to see why it failed to deliver the message.

Neste caso, nenhum e-mail foi enviado, pois SiteSetting.disable_emails == "non-staff".

Deveríamos alertar sobre isso na tarefa rake. Queremos:

  • adicionar lógica a Email::Sender#send que retorne um valor indicando se a mensagem foi enviada (por exemplo, sent, skipped, disabled, no_message)
  • ou, adicionar lógica à tarefa emails:test que verifique apenas disable_emails?
1 curtida

Acho que tive algo a ver com parte desse código…

Então, a parte sobre o e-mail ter sido aceito é uma mentira?

O que eu mais gostaria é que a tarefa rake ignorasse a configuração de desativar e-mails. Se alguém tem acesso ao console, deveria poder enviar um e-mail de teste.

1 curtida

Concordo; é um bom ponto. Pode ser uma boa ideia enviar o e-mail e informar que o e-mail está desabilitado, só por precaução.

2 curtidas

Não consegui reproduzir a falha no envio da mensagem devido ao SiteSetting.disable_emails, mas alterei o script para relatar sucesso apenas se um EmailLog for retornado, além de adicionar um aviso extra sobre a configuração disable_emails.

$ bin/rake 'emails:test[]'
Testando o envio para  usando localhost:1025, usuário: com autenticação .
Conexão com o servidor SMTP bem-sucedida.
Enviando para . . . 
O e-mail não foi enviado.

Motivo: message.to está em branco

### AVISO
A configuração do site `disable_emails` está atualmente definida como non-staff.
Considere alterá-la para 'no' antes de realizar qualquer outra solução de problemas.

e

Enviando para michael@example.com. . . 
E-mail aceito pelo servidor SMTP.
Message-ID: dfaf1c88-aab6-474b-b50c-8c500afb6291@localhost

Se você não receber a mensagem, verifique sua pasta de SPAM
[...]

https://github.com/discourse/discourse/pull/13674

3 curtidas

Este tópico foi automaticamente fechado após 21 horas. Novas respostas não são mais permitidas.