ERROR - Net::ReadTimeout with #<TCPSocket:(closed)>
Parece estar relacionado à biblioteca OpenSSL do Ruby não suportar TLSv1.3, mas isso parece um pouco forçado, já que deveria funcionar com TLSv1.2 de qualquer maneira.
É isso, com esta versão, o Stalwart-mail agora suporta o envio e recebimento de e-mails com o Discourse.
O Stalwart-mail é um serviço de e-mail de binário único que cobre todas as suas necessidades de e-mail sem a confusão de configuração que temos usado por décadas com Postfix + Spamassassin + Dovecot + etc. Aqui, você configura sua instalação e tem tudo pronto, incluindo automação TLS completa com ACME e LetsEncrypt, SPF, DMARC, DKIM, ARC, suporte a DANE pronto para uso (incluindo relatórios de e para seus domínios), TLSA e outros registros DNS prontos para uso, auto-configuração e auto-descoberta para fácil configuração de clientes de e-mail, pastas compartilhadas (via “grupos”), aliases, filtros ManageSieve em todas as mensagens recebidas e enviadas em vários estágios do processo, administração web, suporte a 2FA e TOTP, OAUTH e muitos outros recursos. Não há mais necessidade de externalizar seu e-mail!
Use um listener submission na porta 587 para SMTP
desabilite TLS implícito (significa: use STARTTLS)
Certifique-se de que a opção “ignore client order” esteja desabilitada (seja nos padrões ou substitua as opções TLS do listener)
Habilite um listener POP3 na porta 995 com TLS implícito
Então esta é uma alternativa de código aberto para Mailgun e similares? Isso está começando a parecer muito atraente, já que a maioria desses serviços é bastante cara para baixos volumes.
Imagino que ele exija sua própria máquina (virtual). Seria incrível se pudesse rodar facilmente na mesma máquina que o Discourse.
Você sabe se uma instância do Stalwart Mail poderia atender a várias instâncias do Discourse?
Sim, você pode suportar múltiplos domínios facilmente.
Primeiro, você adiciona um domínio, então ele fornece os registros DNS para configurar o MX (mail exchange). Todos os seus domínios usarão o mesmo MX.
Deve ser fácil executar o Stalwart-mail na mesma máquina que o Discourse. Como ambos exigem a porta TLS 443, você usaria um proxy nessa porta para enviar para ambos os serviços. Mas não faz muito sentido ter uma instância por Discourse, é melhor separar os dois, para que você possa escalar sua infraestrutura de e-mail facilmente e cobrir mais necessidades do que apenas o Discourse.
Como indicação, tenho executado o Stalwart-mail em um VPS Hetzner CPX21 (4 GB de RAM, 3 vCPUs AMD x86, 80 GB de armazenamento) com cerca de 30 contas em uma dúzia de domínios, com logs completos ativados, e ele consome 564 MB de RAM e 7 GB de armazenamento (a maioria é do sistema operacional). O Stalwart-mail afirma 184 MB de RAM residente (menos de 5% de toda a RAM e 1,2 GB virtual).
Estou usando a porta 587 com STARTTLS e não encontrei nenhum erro ao testar agora…
Além disso, nos logs do Stalwart-mail, parece que ele está usando TLSv1.3 e não está encontrando nenhum erro… Tenho uma configuração um pouco incomum que estou testando (usando pebble para executar um servidor ACME local e usando um nome de domínio .test, mas isso provavelmente não é suficiente para quebrar/corrigir qualquer coisa…)
Não estou usando “Override TLS options” no listener da porta 587…
Tenho usado o Stalwart-mail com o Discourse exclusivamente nos últimos meses, e funciona perfeitamente. Agora posso usar tanto Submission (porta 587 com STARTTLS) quanto Submissions (porta 465 com TLS). Nenhuma configuração ou configuração especial envolvida.
Cuidado, porém, configurar os registros DNS de um domínio é um processo de duas etapas.
Primeiro, você adiciona um nome de domínio no Diretório. Isso fornece registros de recursos para adicionar ao seu arquivo de zona DNS.
Assim que seu DNS for atualizado, você cria um provedor TLS para esse domínio. Você deve adicionar os seguintes nomes de host: mail, autoconfig, autodiscover e mta-tls (com seu domínio anexado, por exemplo, mail.example.org).[1]
Após um período (segundos a minutos), o provedor ACME interno captará as alterações e obterá certificados TLS. Neste ponto, a configuração do domínio terá atualizado os registros: selecione o RR _mta-tls com o novo id e todos os registros _tlsa, adicione-os ao seu arquivo de zona e pronto.
O Stalwart-mail agora vem com um filtro de spam muito poderoso e funcionalidade fail2ban integrada (banindo endereços IP que falharam na autenticação ou solicitaram URIs falsas).
observe que para uma configuração mínima de Stalwart-mail + Discourse, você provavelmente não precisa de autoconfig nem autodiscover, pois eles são úteis com clientes IMAP. ↩︎