Estou tentando configurar um host com Discourse em Docker no meu servidor doméstico para testá-lo. Está funcionando muito bem até agora, a instância está rodando sem problemas.
No entanto, não consigo enviar os e-mails através do meu próprio servidor. Em princípio, o envio através de um provedor de serviços funciona.
Estou rodando um smtpd próprio. No entanto, desativei as portas padrão 465 e 587 para envio via IPv4, a fim de restringir varreduras de portas. Apenas a porta 23456 está aberta para envio via IPv4.
Uma verificação com
root@HomeServer:/Ruby/docker.ruby.discourse# ./discourse-doctor
resulta em:
==================== TESTE DE E-MAIL ====================
Para um teste robusto, obtenha um endereço de 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) [hostmaster@example.com]:
Enviando e-mail para hostmaster@example.com. . .
Testando o envio para hostmaster@example.com usando smtpd.example.com:23456, nome de usuário:mbox_hostmaster@example.com com autenticação simples.
======================================== ERRO ========================================
ERRO INESPERADO
Net::ReadTimeout
====================================== 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!)
=======================================================================================
Tentei me conectar via telnet, isso não é problema:
root@HomeServer:/Ruby/docker.ruby.discourse# docker exec -t -i 50544a79b91a /bin/bash
root@discourse:/# telnet smtpd.example.com 23456
Trying 1.2.3.4...
Connected to smtpd.example.com.
Escape character is '^]'.
quit
Connection closed by foreign host.
root@discourse:/# exit
A configuração real em app.yml é:
DISCOURSE_SMTP_ADDRESS: smtpd.example.com
DISCOURSE_SMTP_PORT: 23456
DISCOURSE_SMTP_USER_NAME: mbox_hostmaster@example.com
DISCOURSE_SMTP_PASSWORD: pa$$word
DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, padrão true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (requerido por alguns provedores)
DISCOURSE_NOTIFICATION_EMAIL: no-reply@discourse.example.com # (endereço para enviar notificações)
# DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
# DISCOURSE_SMTP_AUTHENTICATION: "login"
Também tentei fazer funcionar via IPv6, mas sem sucesso. Existe alguma solução para habilitar a conectividade IPv6 dentro do aplicativo docker?
Já estamos em 2024 e 26 anos após o protocolo ter sido padronizado, configurei meus sistemas com ele - tudo está funcionando muito bem.
Obrigado pela ajuda!
Achim