Você já tentou os passos de resolução neste tópico e nos outros relacionados?
Adicione uma linha ao seu app.yml:
DISCOURSE_SMTP_DOMAIN: [fqdn do seu servidor]
Em seguida, em /var/discourse, execute ./launcher rebuild app
O discourse-doctor pode ainda relatar falhas, mas os e-mails de teste feitos a partir do console de administração devem funcionar, e o fluxo normal de e-mail deve ser retomado.
Se isso não funcionar, por favor, nos dê um retorno, pois isso significa que há algum outro aspecto que ainda não foi descoberto.
Parece claro que localhost está sempre errado, mas a maioria dos servidores SMTP ignora esse valor, então não fez diferença.
Os 3 locais onde smtp_domain aparece em https://github.com/discourse/discourse têm mais de 2 a 7 anos. Estava me perguntando se talvez alguma biblioteca tenha começado a enviar localhost por algum motivo.
Acho que a melhor solução, apesar das preocupações do @Falco, seria corrigir isso em algum lugar como
Independentemente de o consenso seja continuar enviando localhost mesmo estando fora das RFCs, corrigir a tarefa rake conforme descrito acima é necessário. Ah, e fui eu quem escreveu aquele código. Mas, espere. Vejo que action_mailer.smtp_settings['domain'] pode estar vazio. Então, acho que
por enquanto, pelo menos. Acho que isso deve usar o domain se existir e manter o comportamento atual (mas errado?) de usar localhost se discourse_smtp_host não estiver definido.
Estou relutante em adicionar isso ao discourse-setup, pois está funcionando para quase todos como está e é mais uma pergunta bastante confusa a ser feita. (E estou prestes a adicionar uma pergunta para notification_email, então, se não tivermos cuidado, começará a parecer com o que lembro de fazer o kernel do Linux há algumas décadas.)
Acabei de ser notificado sobre esse problema e posso confirmar que a correção funciona. Nossa instância, normalmente de baixo volume, também explodiu no Sidekiq, aparentemente devido a jobs de digest sendo reprocessados várias vezes.