==================== TESTE DE EMAIL ====================
Para um teste robusto, obtenha um endereço de http://www.mail-tester.com/
Ou apenas envie uma mensagem de teste para você mesmo.
Endereço de email para teste de email? ('n' para pular) [admin@burlyqna.org]:
Enviando email para admin@burlyqna.org. . .
Testando o envio para admin@burlyqna.org usando smtp.mailfence.com:465, usuário:philion@mailfence.com com autenticação simples.
Conexão com o servidor SMTP bem-sucedida.
Enviando para admin@burlyqna.org. . .
Falha no envio de email.
fim do arquivo alcançado
Há muita discussão sobre a porta 465 nos fóruns de suporte. Com base na minha leitura, parece que o Discourse faz muitas suposições sobre SSL e TLS sobre SMTP, e há algumas variáveis de ambiente que controlam os comportamentos detalhados.
NO ENTANTO, dado o número de erros relatados e perguntas relacionadas nesses fóruns, tenho a forte impressão de que essas configurações são mal documentadas e difíceis de usar. E vendo problemas semelhantes que remontam a 2017, este tem sido um problema por anos.
Pesquisas por “porta 465” ou “Net::ReadTimeout smtp” podem revelar uma longa lista de problemas semelhantes.
Estou tentando encontrar este arquivo na compilação do Docker e não consigo. Vejo que ele está encapsulado em um contêiner, mas clonei discourse/discourse_docker e não discourse/discourse.
Quando tento entrar no aplicativo com launcher enter app, não há como editar esse arquivo ou instalar o vi.
Não consigo encontrar nenhuma documentação ou sinalizador para executar ./discourse-doctor com logs de depuração ativados.
Falha da mesma forma: Não é possível enviar e-mail, ./discourse-doctor relata o mesmo erro.
Atualizei senhas para remover símbolos, esperei o atraso na propagação da autenticação SMTP (tempo suficiente para fazer o almoço), confirmei as credenciais corretas para enviar e-mail com swaks e…
Mesmo erro.
Notei que reconstruir remove o despejo do stacktrace, então vou adicioná-lo de volta e tentar ./launcher destroy app && ./launcher start app
==================== TESTE DE E-MAIL ====================
Para um teste robusto, obtenha um endereço de http://www.mail-tester.com/
Ou apenas envie uma mensagem de teste para você mesmo.
Endereço de e-mail para o teste de e-mail? ('n' para pular) [admin@burlyqna.org]:
Enviando e-mail para admin@burlyqna.org. . .
Testando o envio para admin@burlyqna.org usando smtp.mailfence.com:465, nome de usuário: philion com autenticação simples.
Conexão com o servidor SMTP bem-sucedida.
Enviando para admin@burlyqna.org. . .
Falha ao enviar e-mail.
fim do arquivo alcançado
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:237:in `rbuf_fill'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:199:in `readuntil'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:209:in `readline'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:1017:in `recv_response'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:1008:in `block in getok'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:1027:in `critical'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:1006:in `getok'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:986:in `quit'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:732:in `do_finish'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:645:in `ensure in start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:645:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/message.rb:269:in `deliver!'
Após muitos testes e com a ajuda de @thoka, apresento o seguinte resumo:
Consigo executar testes SMTP usando as mesmas credenciais que forneci em container/app.yml, que funcionam tanto com swaks (Swaks - Swiss Army Knife for SMTP) quanto com o código Ruby de exemplo fornecido por @thoka (veja abaixo).
Estes funcionam de forma consistente. No entanto, tentar configurar um servidor Discourse (que não consegue enviar o e-mail inicial para o usuário administrador) ou usar o bot discourse-doctor resulta em falhas de e-mail:
==================== TESTE DE E-MAIL ====================
Para um teste robusto, obtenha um endereço em http://www.mail-tester.com/
Ou simplesmente envie uma mensagem de teste para você mesmo.
Endereço de e-mail para teste de e-mail? ('n' para pular) [admin@burlyqna.org]:
Enviando e-mail para admin@burlyqna.org. . .
Testando o envio para admin@burlyqna.org usando smtp.mailfence.com:465, nome de usuário:xxx@mailfence.com com autenticação plain.
Conexão com o servidor SMTP bem-sucedida.
Enviando para admin@burlyqna.org. . .
Falha ao enviar e-mail.
fim do arquivo alcançado
Isso parece ser uma falha de configuração de protocolo, pois consigo enviar e-mails de teste usando ferramentas Ruby padrão:
require 'mail'
SMTP_SERVER = 'smtp.mailfence.com'
SMTP_PORT = 465
USERNAME = 'xyz'
PASSWORD = '...'
FROM = 'admin@burlyqna.org'
TO = 'testing@gmail.com'
SUBJECT = 'Teste do Ruby'
BODY = "Olá,\n\nEste é um e-mail de teste enviado do Ruby através de uma conexão protegida por SSL.\n\nAtenciosamente!"
Mail.defaults do
delivery_method :smtp, {
address: SMTP_SERVER,
port: SMTP_PORT,
user_name: USERNAME,
password: PASSWORD,
domain: "burlyqna.org",
enable_starttls_auto: :false,
authentication: :plain,
ssl: true,
}
end
begin
puts 'Enviando e-mail...'
puts "SMTP_SERVER: #{SMTP_SERVER}"
puts "SMTP_PORT: #{SMTP_PORT}"
puts "USERNAME: #{USERNAME}"
puts "PASSWORD: #{PASSWORD}"
puts "FROM: #{FROM}"
puts "TO: #{TO}"
mail = Mail.new do
to TO
from FROM
subject SUBJECT
body BODY
end
mail.deliver!
end