Listmonk com encaminhamento de e-mail para entrega segura de newsletters

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.

  • 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.

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).
  • 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.

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:

Se o DNS do seu domínio for gerenciado pela Cloudflare, você pode aproveitar o recurso de proxy para HTTPS fácil.

  1. 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).
  2. Modificar Docker Compose: Editar o docker-compose.yml arquivo que você baixou:
    sed -i 's/9000:9000/80:9000/' docker-compose.yml
    
    Isso torna o Listmonk acessível internamente na porta 80, que o Cloudflare pode então usar como proxy e proteger com HTTPS.

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" em docker-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.

  1. 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.
  2. 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:

      ContextoValor
      Hospedarsmtp.forwardemail.net
      Porta465
      Protocolo de autenticaçãoLOGIN
      Nome de usuárioSeu e-mail de encaminhamento Nome de usuário SMTP
      SenhaSeu e-mail de encaminhamento senha SMTP
      TLSSSL/TLS
      Por e-mailSeu 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 com SSL/TLS para conexões seguras com o Forward Email. Não utilize STARTTLS (porta 587).

    • Clique Salvar .

  3. 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

  1. Faça login em seu Painel de encaminhamento de e-mail.
  2. Navegar para Domínios, selecione o domínio que você está usando para enviar e vá para o seu Configurações página.
  3. Role para baixo até o URL do Webhook de rejeição seção.
  4. Insira o seguinte URL, substituindo <your_listmonk_domain> com o domínio ou subdomínio real onde sua instância Listmonk está acessível:
    https://<your_listmonk_domain>/webhooks/service/forwardemail
    
    Exemplo: https://listmonk.yourdomain.com/webhooks/service/forwardemail
  5. Role mais para baixo até o Chave de verificação de carga útil de assinatura do Webhook seção.
  6. cópia de a chave de verificação gerada. Você precisará dela no Listmonk.
  7. Salve as alterações nas configurações do seu domínio de encaminhamento de e-mail.

Configuração do Listmonk

  1. No painel de administração do Listmonk, navegue até Configurações -> Rejeições.
  2. Habilitar Habilitar processamento de rejeição.
  3. Habilitar Habilitar webhooks de rejeição.
  4. Role para baixo até o Provedores de Webhook seção.
  5. Habilitar Encaminhar email.
  6. 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.
  7. Clique Salvar  na parte inferior da página.
  8. 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.
  9. Conclua as etapas abaixo em Testando para garantir que tudo esteja funcionando.

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.

  • 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.

  • 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.

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! 🚀