Envio de e-mails não está funcionando

Meu droplet Discourse no DigitalOcean não consegue enviar e-mails. O erro que recebo é:

E-mail entregue d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099,4ms)

Exceção no job: 504 5.7.4 Tipo de autenticação não reconhecido [BL0PR0102CA0036.prod.exchangelabs.com]

Minhas configurações são:

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: foo@bar.com
  DISCOURSE_SMTP_PASSWORD: "minhasenha"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)

Tentei fazer telnet a partir do droplet e não houve erros:
telnet smtp.office365.com 587

O que poderia ser o problema? Testei a combinação de configurações SMTP localmente com Python e funcionou, então presumo que não seja isso.

Olá,
Tente adicionar:

  DISCOURSE_SMTP_AUTHENTICATION: login

E no final do app.yml:

 - exec: rails r "SiteSetting.notification_email='foo@bar.com'"

Olá mik
O comando exec falhou:

FALHA

--------------------

Pups::ExecError: rails r "SiteSetting.notification_email='foo@bar.com'"` falhou com retorno #<Process::Status: pid 2229 exit 2>

Local da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec falhou com os parâmetros "rails r \"SiteSetting.notification_email='foo@bar.com'\"`"

9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae

** FALHA NO BOOTSTRAP ** por favor, role para cima e procure mensagens de erro anteriores; pode haver mais de uma.

./discourse-doctor pode ajudar a diagnosticar o problema.

Atualizar removendo o comando exec, mas adicionando:

  DISCOURSE_SMTP_AUTHENTICATION: login

não gera um erro; recebo apenas:
Delivered mail be6d8718-5445-48cc-a120-6d6d1eab9eb7@discourse.bar.com (4307.2ms)

Mas ainda não recebo um e-mail na minha caixa de entrada (verifiquei a pasta de spam).

Você pode tentar isso para encontrar a configuração correta e talvez obter uma mensagem de erro:

docker exec -t -i id_do_seu_container /bin/bash

Em seguida, dentro do container:

apt install s-nail
echo "Esta é a mensagem do corpo e contém a mensagem" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore seuemail@exemplo.com

Você pode alterar os diferentes valores (por exemplo: smtp-auth=login) para tentar encontrar o correto. E talvez você obtenha uma mensagem de erro mais precisa.

echo "Esta é a mensagem e contém o corpo" | s-nail -r "foo@bar.com" -s meu_assunto -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore seuemail@exemplo.com

Funcionou e recebi o e-mail! Tive que mudar o smtp-auth-password=“xxxxxxxx” para aspas simples, pois minha senha começa com ‘!’.

A única diferença que consigo ver na minha configuração é esta flag:
-S ssl-verify=ignore

Preciso adicionar isso também?
Obrigado pela ajuda!

Tente adicionar:

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Em sua configuração, é o mesmo que ssl-verify=ignore.

Sem erros, mas ainda não há e-mail na caixa de entrada :frowning: Para recapitular, esta é minha configuração agora:

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: info@foo.com
  DISCOURSE_SMTP_PASSWORD: 'xxx'
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Por favor, tente adicionar isso novamente (é o mesmo que a opção “-r” no teste de linha de comando do s-nail:

  - exec: rails r "SiteSetting.notification_email='foo@bar.com'"

O e-mail deve ser o mesmo da sua conta.

E verifique a indentação no arquivo app.yml, e não se esqueça do “-” no início. São dois espaços, depois o “-”, depois um espaço e então “exec…” :slight_smile:

Estou com o mesmo problema. Também criei um droplet com o Discourse na Digital Ocean. Usei o comando sudo ./discourse-doctor após tentar todas essas sugestões e reconstruir a cada vez (sudo ./launcher rebuild app).

504 5.7.4 Tipo de autenticação não reconhecido [BL0PR01CA0015.prod.exchangelabs.com]

O s-nail dentro do container também funcionou para mim, sem problemas. E tentei sem a cláusula -S ssl-verify=ignore, e funcionou bem. Alguém pode confirmar se o que é instalado no droplet da Digital Ocean envia e-mails corretamente?

Descubra com seus administradores de e-mail quais são os valores válidos para smtp_authentication e configure DISCOURSE_SMTP_AUTHENTICATION com um que funcione.

Obrigado por toda a ajuda. Desisti e migrei para outra solução de fórum.

É da Microsoft, e as instruções deles são as seguintes: não há smtp_authentication especificado;

  • Nome do servidor SMTP: smtp.office365.com
  • Porta SMTP: 587
  • Método de criptografia SMTP: STARTTLS

Vocês não dão suporte a esse tipo de servidor? Vocês poderiam simplesmente criar uma conta, conectar-se a ela e nos informar quais são as configurações corretas?

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Isso resolveu meu problema, obrigado!