Problemas com o Servidor SMTP do Outlook (SMTPSyntaxError)

Olá a todos!

Tenho trabalhado e tentado configurar uma instância auto-hospedada do Discourse em um servidor CentOS. Na maior parte, as coisas parecem estar boas, pois configurei o nome do host e outras coisas, e o contêiner Docker é iniciado e consigo acessar minha instância do Discourse em minha rede local em http://discourse.foo.co.

No entanto, é aqui que estou um pouco preso, pois não consigo criar meu primeiro usuário, já que as configurações de SMTP que estou usando parecem não funcionar e estão constantemente lançando um Net::SMTPSyntaxError, não importa o que eu tente.

Minhas configurações de SMTP no app.yml são:

## TODO: Lista de e-mails separados por vírgula que serão administradores e desenvolvedores
## na inscrição inicial, exemplo 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'brian@foo.co'

  ## TODO: O servidor de e-mail SMTP usado para validar novas contas e enviar notificações
  # Endereço, nome de usuário e senha SMTP são necessários
  # ATENÇÃO: o caractere '#' na senha SMTP pode causar problemas!
  DISCOURSE_SMTP_ADDRESS: foo.mail.protection.outlook.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user@foo.co
  DISCOURSE_SMTP_PASSWORD: uma senha que contém alguns caracteres especiais '@' e '/'. A senha não contém o caractere especial '#'.
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true         # (opcional, padrão true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (requerido por alguns provedores)
  DISCOURSE_NOTIFICATION_EMAIL: 'community@foo.co'    # (endereço para enviar notificações)

Procurei em todos os fóruns do Discourse, mas pesquisar por ‘SMTPSyntaxError’ não me retorna nenhum resultado. No Google, não consigo encontrar soluções que ajudem.

As mesmas configurações de SMTP, quando inseridas em nossos servidores Bamboo e Jira, funcionam perfeitamente e conseguem enviar e-mails sem problemas.

Também usei ferramentas de teste online como https://dnschecker.org/smtp-test-tool.php e ele consegue enviar e-mails de teste perfeitamente. Por exemplo, inserir os mesmos detalhes mostrados acima envia um e-mail de teste com o seguinte conteúdo com sucesso para minha caixa de entrada.

Host SMTP: foo.mail.protection.outlook.com.
Porta: 25
Usar criptografia TLS explícita: Não
Usar criptografia TLS/SSL implícita:
Usar autenticação: Não
E-mail de: test@foo.co
E-mail para: brian@foo.co

Qualquer ajuda seria apreciada, obrigado,
Brian

Eu aconselharia a despejar o tráfego que vai do seu contêiner para o servidor SMTP para que você possa ver exatamente o que está acontecendo na rede.

Você pode acionar um e-mail executando dentro do contêiner:

rake 'emails:test[seu.email@seu.dominio]'

e você deverá ver, por exemplo:

root@michael-discourse-docker-app:/var/www/discourse# rake 'emails:test[michael@contoso.com]'
Testing sending to michael@contoso.com using mail.contoso.net:587, username:michael with plain auth.
SMTP server connection successful.
Sending to michael@contoso.com. . .
Mail accepted by SMTP server.
Message-ID: e7adb5c4-f404-4800-b070-631b06ff5335@mx1.contoso.com

O que também pode lhe dar algumas pistas.

3 curtidas

Olá Michael,

Obrigado pela sua sugestão, mas parece que ela gera o mesmo erro que ocorre quando uso ./discourse-doctor.

root@discourse-app:/var/www/discourse# rake 'emails:test[brian.lui@foo.co]'
Testing sending to brian.lui@foo.co using foo.mail.protection.outlook.com:25, username:user@foo.co with login auth.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::SMTPSyntaxError

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================

Brian

Quando executo o comando dentro do contêiner (como vi no guia de solução de problemas de SMTP do Discourse):

openssl s_client -connect foo.mail.protection.outlook.com:25 -starttls smtp

Tudo parece normal, mas em vez de um 250 DSN, vejo um 250 SMTPUTF8. Em seguida, quando tento digitar o comando EHLO \"i am here\", nada acontece e eventualmente ocorre um timeout:

451 4.7.0 Timeout waiting for client input [YT1PEPF00001E8C.CANPRD01.PROD.OUTLOOK.COM 2024-02-23T17:51:16.770Z 08DC342D15BDD245]\nread:errno=0

Eu obtenho o mesmo resultado.

Não tenho realmente nenhuma sugestão além de que este parece ser um problema com o próprio servidor de e-mail em vez do Discourse.

Eu não esperaria que este servidor fosse usado para submissão de e-mail. Você tem certeza de que isso está correto?

Eu vejo que outras pessoas usaram um servidor de submissão diferente e conseguiram fazer isso funcionar:

2 curtidas