Embora eu acredite que o erro de @kvsf já foi corrigido ou que algumas coisas fundamentais em sua configuração foram alteradas, gostaria de continuar esta thread postando minha própria configuração, minha abordagem adicional e minha busca por ajuda dentro do mesmo domínio de problema.
Configuração Básica
- Google Workspace Business Starter
- Configurar Gmail-Routing > SMTP-Relay com i) apenas usuários registrados de dentro do domínio, ii) lista de permissões de IP com o IP do meu servidor de hospedagem de fórum e imposição de autenticação SMTP, iii) imposição de TLS
- Instalação do Docker do Discourse de acordo com a documentação do Discourse
- Configuração do
app.yml de acordo com
expose:
- "80:80" # http
- "443:443" # https
env:
DISCOURSE_HOSTNAME: "forum.mydomain.com"
DISCOURSE_DEVELOPER_EMAILS: 'dev@mydomain.com'
DISCOURSE_SMTP_ADDRESS: "smtp-relay.gmail.com"
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "user@mydomain.com"
DISCOURSE_SMTP_PASSWORD: "mypass"
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPEN_TIMEOUT: 25
DISCOURSE_SMTP_READ_TIMEOUT: 25
DISCOURSE_SMTP_DOMAIN: "mydomain.com"
DISCOURSE_NOTIFICATION_EMAIL: "noreply@mydomain.com"
LETSENCRYPT_ACCOUNT_EMAIL: dev@mydomain.com
Meus Testes
Ao executar ./discourse-doctor, esta configuração leva ao erro
Testing sending to ...
SMTP server connection successful.
Sending to artificial.testadress@gmail.com. . .
Sending mail failed.
end of file reached
Eu então primeiro verifiquei os diferentes logs do Discourse e de e-mail
Testando manualmente o mesmo processo de dentro do Docker (conectando usando docker exec -it <CONTAINER_ID> bash) via
openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587
não encontra problemas e funciona bem. Então, acredito que ou minha configuração de parâmetros no app.yml está estranha OU o Discourse internamente tem alguma falha de comunicação de script OU… tantas possibilidades. ^^
Para não ter que sempre executar ./launcher rebuild app após alterar app.yml para testar diferentes configurações, comecei a editar diretamente /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb alterando o código existente para:
class SMTP
attr_accessor :settings
DEFAULTS = {
:address => 'smtp-relay.gmail.com',
:port => 587,
:domain => 'mydomain.com',
:user_name => 'user@mydomain.com',
:password => 'mypass',
:authentication => 'login',
:enable_starttls => nil,
:enable_starttls_auto => true,
:openssl_verify_mode => 'peer',
:ssl => nil,
:tls => nil,
:open_timeout => 25,
:read_timeout => 25
}
def initialize(values)
self.settings = DEFAULTS #.merge(values)
end
o que leva ao mesmo comportamento acima (dadas as configurações personalizadas do app.yml).
Busca por ajuda
E agora estou preso. Claro, eu poderia brincar mais com as configurações restantes (e até mesmo voltar a usar apenas SSL, embora isso seja depreciado pelo Discourse), mas eu gostaria de:
- aprender como analisar este problema mais profundamente
- assim entender o que realmente está acontecendo e qual é o problema
- corrigi-lo e ser capaz de usar tudo sem problemas (+ finalmente fazer o fórum funcionar corretamente)
Obrigado antecipadamente pela sua ajuda.