O email não funciona; Net::SMTPAuthenticationError

Estou hospedando o servidor Discourse no DigitalOcean, domínio do PorkBun, servidor de e-mail com MailGun.

Minha conta MailGun está ativada e o domínio (discourse.mydomain.com) está verificado para uso com mg.mydomain.com. Todos os registros TXT do DNS estão no lugar.

Eu executei todos os passos de solução de problemas no tópico aqui várias vezes; Troubleshoot email on a new Discourse install

Eu consigo entrar em telnet no host e enviar e-mail manualmente sem problemas (https://serverfault.com/questions/49935/easiest-way-to-send-a-test-email-from-a-server-to-test-settings)

O app.yml tem o seguinte conteúdo

  DISCOURSE_DEVELOPER_EMAILS: 'myemail@gmail.com'
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: mail
  DISCOURSE_SMTP_PASSWORD: "12345678901234567890"
  DISCOURSE_SMTP_DOMAIN: mg.mydomain.com
  DISCOURSE_NOTIFICATION_EMAIL: admin@mg.mydomain.com

Quando tento executar discourse-doctor ou se executo ./launcher enter app e depois executo rake 'emails:test[mail@mg.mydomain.com]' recebo o seguinte erro

======================================== ERRO ========================================
                                    ERRO INESPERADO

Net::SMTPAuthenticationError

====================================== SOLUÇÃO =======================================
Este não é um erro comum. Nenhuma solução recomendada existe!

Por favor, relate a mensagem de erro exata acima para https://meta.discourse.org/
(E uma solução, se você encontrar uma!)
=======================================================================================

Algo está quebrado no Discourse, porque não tenho problemas para enviar o e-mail manualmente. Tenho pesquisado no Google e nos fóruns aqui por muitas horas, sem soluções ainda. Alguma ideia?

Há algo de errado com seu nome de usuário/senha. É possível que sua senha tenha um caractere que precise de escape, como um asterisco ou uma aspa simples, talvez (então será mais fácil alterar a senha para não incluir esse caractere).

Consulte Solução de problemas de e-mail em uma nova instalação do Discourse

2 curtidas

a senha não contém nenhum desses caracteres. Na verdade, é a senha gerada automaticamente pelo MailGun, e contém apenas letras, números e alguns caracteres ‘-’. É bastante longa.

Essa foi a minha melhor suposição. Eu tentaria gerar uma nova senha e/ou copiá-la e colá-la novamente. A probabilidade de isso ser um bug no Discourse é extremamente remota.

1 curtida

Eu apostaria que DISCOURSE_SMTP_USER_NAME está incorreto - mail provavelmente não é suficiente para o mailgun autenticá-lo. Deveria ser mail@mg.mydomain.com.

Eu acho que você pensa que DISCOURSE_SMTP_DOMAIN é o domínio do usuário? Não é - é o domínio EHLO. Você quase definitivamente não precisa configurá-lo.

1 curtida

Acabei de perceber isso também, quando testei com telnet usei “mail@mg.mydomain.com” como nome de usuário e funcionou, então vou tentar novamente com isso como DISCOURSE_SMTP_USER_NAME

Eu apostaria que você acha que DISCOURSE_SMTP_DOMAIN é o domínio do usuário? Não é - é o domínio EHLO. Provavelmente você não precisa configurá-lo.

Não tenho certeza se entendi o que isso significa

Para o MailGun eu estava usando mg.mydomain.com, para o Discourse eu estava usando discourse.mydomain.com. Na verdade, não tenho nenhum registro DNS configurado no momento para mydomain.com, apenas para o subdomínio Discourse e os registros TXT para o DNS do MailGun

Remova a linha DISCOURSE_SMTP_DOMAIN, você quase definitivamente não precisa dela.

Ela é usada durante a negociação SMTP como o domínio HELO/EHLO.

1 curtida

ah sim, também quando testei com o telnet, consegui enviar o e-mail de todos os seguintes endereços

  • mail@discourse.mydomain.com
  • mail@mydomain.com
  • mail@mg.mydomain.com

Não tenho certeza de qual deles devo realmente usar? Isso importa?

Isso depende da sua configuração e de como você quer que o fluxo de e-mail seja.

1 curtida

está funcionando agora, obrigado a todos pela ajuda :slight_smile:

a solução foi usar

  DISCOURSE_SMTP_USER_NAME: mail@mg.mydomain.com

em vez de

  DISCOURSE_SMTP_USER_NAME: mail
2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.