Listmonk com encaminhamento de e-mail para entrega segura de newsletters
Visão geral
Este guia fornece aos desenvolvedores instruções passo a passo para a configuração Listmonk, um poderoso gerenciador de listas de discussão e newsletters de código aberto, para usar Encaminhar email como seu provedor SMTP. Essa combinação permite que você gerencie suas campanhas com eficiência, garantindo entrega de e-mails segura, privada e confiável.
- Listmonk: Lida com gerenciamento de assinantes, organização de listas, criação de campanhas e monitoramento de desempenho.
- Encaminhar email: Atua como um servidor SMTP seguro, gerenciando o envio de e-mails com recursos de segurança integrados, como criptografia SPF, DKIM, DMARC e TLS.
Ao integrar esses dois, você mantém controle total sobre seus dados e infraestrutura, ao mesmo tempo em que aproveita o robusto sistema de entrega do Forward Email.
Por que usar Listmonk e Forward Email
- Código aberto: Tanto o Listmonk quanto os princípios por trás do Forward Email enfatizam a transparência e o controle. Você hospeda o Listmonk e é o proprietário dos seus dados.
- Focado na privacidade: O Forward Email foi criado com a privacidade em seu cerne, minimizando a retenção de dados e focando na transmissão segura.
- Custo-benefício: O Listmonk é gratuito, e o Forward Email oferece níveis gratuitos generosos e planos pagos acessíveis, o que o torna uma solução econômica.
- Escalabilidade: O Listmonk tem alto desempenho e a infraestrutura do Forward Email foi projetada para entrega confiável em escala.
- Amigável ao desenvolvedor: O Listmonk oferece uma API robusta, e o Forward Email fornece integração direta com SMTP e webhooks.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
- Um servidor virtual privado (VPS) executando uma distribuição Linux recente (Ubuntu 20.04+ recomendado) com pelo menos 1 CPU e 1 GB de RAM (2 GB recomendados).
- Precisa de um provedor? Confira o lista de VPS recomendados.
- Um nome de domínio que você controla (acesso DNS necessário).
- Uma conta ativa com Encaminhar email.
- Raiz ou
sudo
acesso ao seu VPS. - Familiaridade básica com operações de linha de comando do Linux.
Instalação
Estas etapas orientam você na instalação do Listmonk usando o Docker e o Docker Compose no seu VPS.
1. Atualize seu servidor
Certifique-se de que a lista de pacotes do seu sistema e os pacotes instalados estejam atualizados.
sudo apt update && sudo apt upgrade -y
2. Instalar dependências
Instale o Docker, o Docker Compose e o UFW (Uncomplicated Firewall).
sudo apt install -y docker.io docker-compose ufw
3. Baixe a configuração do Listmonk
Crie um diretório para Listmonk e baixe o arquivo oficial docker-compose.yml
arquivo.
mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml
Este arquivo define o contêiner do aplicativo Listmonk e seu contêiner de banco de dados PostgreSQL necessário.
4. Configurar Firewall (UFW)
Permita tráfego essencial (SSH, HTTP, HTTPS) através do firewall. Se o seu SSH estiver sendo executado em uma porta não padrão, ajuste-o conforme necessário.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Confirme a ativação do firewall quando solicitado.
5. Configurar acesso HTTPS
Executar o Listmonk via HTTPS é crucial para a segurança. Você tem duas opções principais:
Opção A: Usando o Proxy Cloudflare (recomendado para simplificar)
Se o DNS do seu domínio for gerenciado pela Cloudflare, você pode aproveitar o recurso de proxy para HTTPS fácil.
- Ponto DNS: Criar um
A
registro no Cloudflare para seu subdomínio Listmonk (por exemplo,listmonk.yourdomain.com
) apontando para o endereço IP do seu VPS. Certifique-se de que Status de proxy está definido para Proxy (nuvem laranja). - Modificar Docker Compose: Editar o
docker-compose.yml
arquivo que você baixou:
Isso torna o Listmonk acessível internamente na porta 80, que o Cloudflare pode então usar como proxy e proteger com HTTPS.sed -i 's/9000:9000/80:9000/' docker-compose.yml
Opção B: Usando um proxy reverso (Nginx, Caddy, etc.)
Como alternativa, você pode configurar um proxy reverso como Nginx ou Caddy no seu VPS para lidar com o encerramento de HTTPS e solicitações de proxy para o Listmonk (executando na porta 9000 por padrão).
- Manter o padrão
ports: - "127.0.0.1:9000:9000"
emdocker-compose.yml
para garantir que o Listmonk só seja acessível localmente. - Configure o proxy reverso escolhido para escutar nas portas 80 e 443, lidar com a aquisição de certificado SSL (por exemplo, via Let's Encrypt) e encaminhar o tráfego para
http://127.0.0.1:9000
. - A configuração detalhada do proxy reverso está além do escopo deste guia, mas muitos tutoriais estão disponíveis online.
6. Inicie o Listmonk
Navegue de volta para o seu listmonk
diretório (se você ainda não estiver lá) e inicie os contêineres no modo desanexado.
cd ~/listmonk # Or the directory where you saved docker-compose.yml
docker compose up -d
O Docker baixará as imagens necessárias e iniciará o aplicativo Listmonk e os contêineres do banco de dados. Pode levar um ou dois minutos na primeira vez.
✅ Acessar Listmonk:Agora você deve conseguir acessar a interface da web do Listmonk por meio do domínio que você configurou (por exemplo, https://listmonk.yourdomain.com
).
7. Configurar o encaminhamento de e-mail SMTP no Listmonk
Em seguida, configure o Listmonk para enviar e-mails usando sua conta Forward Email.
- Habilitar SMTP no encaminhamento de e-mail: Certifique-se de ter gerado credenciais SMTP no painel da sua conta de encaminhamento de e-mail. Siga as instruções Guia de encaminhamento de e-mail para enviar e-mail com um domínio personalizado via SMTP se você ainda não o fez.
- Configurar Listmonk: Entre no seu painel de administração do Listmonk.
-
Navegar para Configurações -> SMTP.
-
O Listmonk possui suporte integrado para encaminhamento de e-mail. Selecione Encaminhar e-mail da lista de provedores ou insira manualmente os seguintes detalhes:
Contexto Valor Hospedar smtp.forwardemail.net
Porta 465
Protocolo de autenticação LOGIN
Nome de usuário Seu e-mail de encaminhamento Nome de usuário SMTP Senha Seu e-mail de encaminhamento senha SMTP TLS SSL/TLS
Por e-mail Seu desejado From
endereço (por exemplo,newsletter@yourdomain.com
). Certifique-se de que este domínio esteja configurado em Encaminhar e-mail. -
Importante: Sempre use a porta
465
comSSL/TLS
para conexões seguras com o Forward Email. Não utilize STARTTLS (porta 587). -
Clique Salvar .
-
- Enviar e-mail de teste: Use o botão "Enviar e-mail de teste" na página de configurações de SMTP. Insira um endereço de destinatário que você possa acessar e clique em Enviar. Verifique se o e-mail chega na caixa de entrada do destinatário.
8. Configurar o processamento de rejeição
O processamento de devoluções permite que o Listmonk trate automaticamente e-mails que não puderam ser entregues (por exemplo, devido a endereços inválidos). O recurso Encaminhar e-mails fornece um webhook para notificar o Listmonk sobre devoluções.
Configuração de encaminhamento de e-mail
- Faça login em seu Painel de encaminhamento de e-mail.
- Navegar para Domínios, selecione o domínio que você está usando para enviar e vá para o seu Configurações página.
- Role para baixo até o URL do Webhook de rejeição seção.
- Insira o seguinte URL, substituindo
<your_listmonk_domain>
com o domínio ou subdomínio real onde sua instância Listmonk está acessível:
Exemplo:https://<your_listmonk_domain>/webhooks/service/forwardemail
https://listmonk.yourdomain.com/webhooks/service/forwardemail
- Role mais para baixo até o Chave de verificação de carga útil de assinatura do Webhook seção.
- cópia de a chave de verificação gerada. Você precisará dela no Listmonk.
- Salve as alterações nas configurações do seu domínio de encaminhamento de e-mail.
Configuração do Listmonk
- No painel de administração do Listmonk, navegue até Configurações -> Rejeições.
- Habilitar Habilitar processamento de rejeição.
- Habilitar Habilitar webhooks de rejeição.
- Role para baixo até o Provedores de Webhook seção.
- Habilitar Encaminhar email.
- Cole o Chave de verificação de carga útil de assinatura do Webhook você copiou do painel de encaminhamento de e-mail para o Chave de encaminhamento de e-mail campo.
- Clique Salvar na parte inferior da página.
- O processamento de rejeição agora está configurado! Quando o Forward Email detecta uma rejeição em um e-mail enviado pelo Listmonk, ele notifica sua instância do Listmonk via webhook, e o Listmonk marca o assinante de acordo.
- Conclua as etapas abaixo em Testando para garantir que tudo esteja funcionando.
Testando
Aqui está uma rápida visão geral das principais funções do Listmonk:
Criar uma lista de discussão
- Vamos para Listas na barra lateral.
- Clique Nova Lista.
- Preencha os detalhes (Nome, Tipo: Público/Privado, Descrição, Tags) e Salvar .
Adicionar assinantes
- Navegue até o Assinantes seção.
- Você pode adicionar assinantes:
- Manualmente: Clique Novo assinante.
- Importar: Clique Importar assinantes para carregar um arquivo CSV.
- API: Use a API Listmonk para adições programáticas.
- Atribua assinantes a uma ou mais listas durante a criação ou importação.
- Melhores Práticas: Utilize um processo de confirmação dupla. Configure isso em Configurações -> Opt-in e Assinaturas.
Criar e enviar uma campanha
- Vamos para Campanhas -> Nova Campanha.
- Preencha os detalhes da campanha (Nome, Assunto, E-mail de origem, Lista(s) para envio).
- Escolha seu tipo de conteúdo (Rich Text/HTML, Texto Simples, HTML Bruto).
- Componha o conteúdo do seu e-mail. Você pode usar variáveis de modelo como
{{ .Subscriber.Email }}
ou{{ .Subscriber.FirstName }}
. - Sempre envie um e-mail de teste primeiro! Use a opção "Enviar teste" para visualizar o e-mail na sua caixa de entrada.
- Uma vez satisfeito, clique Iniciar campanha para enviar imediatamente ou agendá-lo para mais tarde.
Verificação
- Entrega SMTP: Envie regularmente e-mails de teste por meio da página de configurações SMTP do Listmonk e teste campanhas para garantir que os e-mails sejam entregues corretamente.
- Tratamento de rejeição: Envie uma campanha de teste para um endereço de e-mail inválido conhecido (por exemplo,
bounce-test@yourdomain.com
(se você não tiver um real à mão, os resultados podem variar). Verifique as estatísticas da campanha no Listmonk depois de um tempo para ver se a rejeição foi registrada. - Cabeçalhos de e-mail: Use ferramentas como Testador de e-mail ou inspecione os cabeçalhos de e-mail manualmente para verificar se SPF, DKIM e DMARC estão passando, indicando a configuração correta por meio do Encaminhamento de e-mail.
- Encaminhar logs de e-mail: Verifique os logs do painel de encaminhamento de e-mails se você suspeitar de problemas de entrega originados no servidor SMTP.
Notas do desenvolvedor
- Modelagem: O Listmonk usa o mecanismo de criação de modelos do Go. Explore sua documentação para personalização avançada:
{{ .Subscriber.Attribs.your_custom_field }}
. - API: O Listmonk fornece uma API REST abrangente para gerenciar listas, assinantes, campanhas, modelos e muito mais. Encontre o link da documentação da API no rodapé da sua instância do Listmonk.
- Campos personalizados: Defina campos de assinante personalizados em Configurações -> Campos do Assinante para armazenar dados adicionais.
- Webhooks: Além de rejeições, o Listmonk pode enviar webhooks para outros eventos (por exemplo, assinaturas), permitindo a integração com outros sistemas.
Conclusão
Ao integrar o poder de auto-hospedagem do Listmonk com a entrega segura e respeitosa da privacidade do Forward Email, você cria uma plataforma de marketing por e-mail robusta e ética. Você mantém a propriedade total dos dados do seu público, enquanto se beneficia de alta entregabilidade e recursos de segurança automatizados.
Essa configuração fornece uma alternativa escalável, econômica e amigável ao desenvolvedor aos serviços de e-mail proprietários, alinhando-se perfeitamente com o espírito do software de código aberto e da privacidade do usuário.
Feliz envio! 🚀