Listmonk 带有转发电子邮件功能,可确保新闻通讯的安全发送

本指南为开发者提供设置 Listmonk,一个强大的开源时事通讯和邮件列表管理器,使用 转发邮件 作为其 SMTP 提供商。这种组合使您能够有效地管理您的营销活动,同时确保安全、私密且可靠的电子邮件传递。

  • Listmonk:处理订阅者管理、列表组织、活动创建和绩效跟踪。
  • 转发邮件:充当安全的 SMTP 服务器,使用 SPF、DKIM、DMARC 和 TLS 加密等内置安全功能处理电子邮件的实际发送。

通过整合这两者,您可以完全控制您的数据和基础设施,同时利用 Forward Email 强大的交付系统。

  • 开源:Listmonk 和 Forward Email 背后的原则都强调透明度和控制力。Listmonk 的托管服务由您自行管理,您的数据归您所有。
  • 注重隐私:Forward Email 以隐私为核心,最大限度地减少数据保留并注重安全传输。
  • 经济高效:Listmonk 是免费的,Forward Email 提供慷慨的免费套餐和实惠的付费计划,使其成为经济实惠的解决方案。
  • 可扩展性:Listmonk 性能极高,而 Forward Email 的基础设施专为大规模可靠交付而设计。
  • 开发者友好:Listmonk 提供了强大的 API,而 Forward Email 提供了简单的 SMTP 集成和 webhook。

开始之前,请确保您已准备好以下内容:

  • 运行最新 Linux 发行版(推荐 Ubuntu 20.04+)的虚拟专用服务器 (VPS),至少配备 1 个 CPU 和 1GB RAM(推荐 2GB)。
  • 您控制的域名(需要 DNS 访问)。
  • 活跃账户 转发邮件.
  • 根或 sudo 访问您的 VPS。
  • 基本熟悉Linux命令行操作。

这些步骤指导您在 VPS 上使用 Docker 和 Docker Compose 安装 Listmonk。

1.更新您的服务器

确保系统的软件包列表和已安装的软件包都是最新的。

sudo apt update && sudo apt upgrade -y

2.安装依赖项

安装 Docker、Docker Compose 和 UFW(简单防火墙)。

sudo apt install -y docker.io docker-compose ufw

3.下载Listmonk配置

为 Listmonk 创建目录并下载官方 docker-compose.yml 文件。

mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml

该文件定义了 Listmonk 应用程序容器及其所需的 PostgreSQL 数据库容器。

4.配置防火墙(UFW)

允许必要的流量(SSH、HTTP、HTTPS)通过防火墙。如果您的 SSH 在非标准端口上运行,请进行相应调整。

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

出现提示时确认启用防火墙。

5.配置HTTPS访问

通过 HTTPS 运行 Listmonk 对安全性至关重要。您有两个主要选项:

如果您的域名的 DNS 由 Cloudflare 管理,您可以利用其代理功能轻松实现 HTTPS。

  1. 点 DNS:创建一个 A 在 Cloudflare 中为您的 Listmonk 子域名记录(例如, listmonk.yourdomain.com)指向您的 VPS IP 地址。确保 代理状态 设置为 代理 (橙色云)。
  2. 修改 Docker Compose:编辑 docker-compose.yml 您下载的文件:
    sed -i 's/9000:9000/80:9000/' docker-compose.yml
    
    这使得 Listmonk 可以在端口 80 上进行内部访问,然后 Cloudflare 可以使用 HTTPS 进行代理和保护。

选项 B:使用反向代理(Nginx、Caddy 等)

或者,您可以在 VPS 上设置像 Nginx 或 Caddy 这样的反向代理来处理对 Listmonk 的 HTTPS 终止和代理请求(默认在端口 9000 上运行)。

  • 保留默认设置 ports: - "127.0.0.1:9000:9000"docker-compose.yml 确保 Listmonk 只能在本地访问。
  • 配置您选择的反向代理以侦听端口 80 和 443,处理 SSL 证书获取(例如,通过 Let's Encrypt),并将流量转发到 http://127.0.0.1:9000.
  • 详细的反向代理设置超出了本指南的范围,但网上有许多教程可供参考。

6. 启动 Listmonk

返回您的 listmonk 目录(如果您还没有在那里)并以分离模式启动容器。

cd ~/listmonk # Or the directory where you saved docker-compose.yml
docker compose up -d

Docker 将下载必要的镜像并启动 Listmonk 应用程序和数据库容器。首次启动可能需要一两分钟。

访问 Listmonk:您现在应该能够通过您配置的域访问 Listmonk Web 界面(例如, https://listmonk.yourdomain.com).

7. 在 Listmonk 中配置转发电子邮件 SMTP

接下来,配置 Listmonk 使用您的转发电子邮件帐户发送电子邮件。

  1. 在转发电子邮件中启用 SMTP:确保您已在“转发电子邮件”帐户信息中心中生成 SMTP 凭据。请按照 转发电子邮件指南,通过 SMTP 发送带有自定义域的电子邮件 如果你还没有这样做的话。
  2. 配置 Listmonk:登录您的 Listmonk 管理面板。
    • 导航至 设置 -> SMTP.

    • Listmonk 内置了转发邮件功能。选择 转发邮件 从提供商列表中,或手动输入以下详细信息:

      环境价值
      主持人smtp.forwardemail.net
      港口465
      授权协议LOGIN
      用户名您的转发电子邮件 SMTP 用户名
      密码您的转发电子邮件 邮件密码
      TLSSSL/TLS
      通过电子邮件您想要的 From 地址(例如, newsletter@yourdomain.com)。确保在转发电子邮件中配置了此域。
    • 重要的:始终使用端口 465SSL/TLS 用于转发电子邮件的安全连接。请勿使用 STARTTLS(端口 587)。

    • 点击 保存.

  3. 发送测试电子邮件:使用 SMTP 设置页面中的“发送测试电子邮件”按钮。输入您可以访问的收件人地址,然后点击 发送. 验证电子邮件是否到达收件人的收件箱。

8. 配置退回处理

退回处理功能允许 Listmonk 自动处理无法投递的邮件(例如,由于地址无效)。“转发邮件”提供了一个 Webhook,用于通知 Listmonk 邮件退回的情况。

转发电子邮件设置

  1. 登录您的 转发电子邮件仪表板.
  2. 导航至 ,选择您用于发送的域名,然后转到其 设置 页。
  3. 向下滚动到 退回 Webhook URL 部分。
  4. 输入以下 URL,替换 <your_listmonk_domain> 使用可访问 Listmonk 实例的实际域或子域:
    https://<your_listmonk_domain>/webhooks/service/forwardemail
    
    例子: https://listmonk.yourdomain.com/webhooks/service/forwardemail
  5. 继续向下滚动到 Webhook 签名负载验证密钥 部分。
  6. 复制 生成的验证密钥。在 Listmonk 中需要用到它。
  7. 保存转发电子邮件域设置中的更改。

Listmonk 设置

  1. 在您的 Listmonk 管理面板中,导航至 设置 -> 退回.
  2. 使能够 启用退回处理.
  3. 使能够 启用反弹 webhook.
  4. 向下滚动到 Webhook 提供商 部分。
  5. 使能够 转发邮件.
  6. 粘贴 Webhook 签名负载验证密钥 您从转发电子邮件仪表板复制到 转发电子邮件键 场地。
  7. 点击 保存 在页面底部。
  8. 退回处理现已配置完毕!当“转发电子邮件”检测到 Listmonk 发送的邮件被退回时,它会通过 webhook 通知您的 Listmonk 实例,然后 Listmonk 会相应地标记订阅者。
  9. 完成以下步骤 测试 以确保一切正常。

以下是 Listmonk 核心功能的简要概述:

创建邮件列表

  • 列表 在侧边栏中。
  • 点击 新列表.
  • 填写详细信息(名称、类型:公共/私人、描述、标签)和 保存.

添加订阅者

  • 导航至 订阅者 部分。
  • 您可以添加订阅者:
    • 手动: 点击 新订户.
    • 进口: 点击 导入订阅者 上传 CSV 文件。
    • API:使用 Listmonk API 进行编程添加。
  • 在创建或导入期间将订阅者分配到一个或多个列表。
  • 最佳实践:使用双重确认流程。请在下方配置 设置 -> 选择加入和订阅.

创建并发送营销活动

  • 活动 -> 新战役.
  • 填写活动详情(名称、主题、发件人电子邮件、发送至列表)。
  • 选择您的内容类型(富文本/HTML、纯文本、原始 HTML)。
  • 撰写电子邮件内容。您可以使用以下模板变量: {{ .Subscriber.Email }} 或者 {{ .Subscriber.FirstName }}.
  • 请务必先发送一封测试电子邮件! 使用“发送测试”选项预览收件箱中的电子邮件。
  • 一旦满意,点击 开始活动 立即发送或安排稍后发送。

  • SMTP 传递:定期通过 Listmonk 的 SMTP 设置页面发送测试电子邮件并测试活动,以确保电子邮件正确送达。
  • 退回处理:向已知无效的电子邮件地址发送测试活动(例如, bounce-test@yourdomain.com 如果您手边没有真正的邮件,请尝试使用 Listmonk 中的邮件统计工具,看看是否记录了跳出率。
  • 电子邮件标题:使用类似 邮件测试器 或者手动检查电子邮件标头以验证 SPF、DKIM 和 DMARC 是否通过,表明通过转发电子邮件进行正确设置。
  • 转发电子邮件日志:如果您怀疑传递问题源自 SMTP 服务器,请检查转发电子邮件仪表板日志。

  • 模板:Listmonk 使用 Go 的模板引擎。您可以浏览其文档,了解高级个性化功能: {{ .Subscriber.Attribs.your_custom_field }}.
  • API:Listmonk 提供全面的 REST API,用于管理列表、订阅者、活动、模板等。您可以在 Listmonk 实例的页脚中找到 API 文档链接。
  • 自定义字段:定义自定义订阅者字段 设置 -> 订阅者字段 存储额外的数据。
  • 网络钩子:除了退回邮件,Listmonk 还可以发送其他事件(例如订阅)的 webhook,从而允许与其他系统集成。

通过将 Listmonk 的自托管功能与 Forward Email 的安全、尊重隐私的交付功能相结合,您可以创建一个强大且符合道德规范的电子邮件营销平台。您可以完全掌控您的受众数据,同时享受高送达率和自动化安全功能。

此设置提供了一种可扩展、经济高效且开发人员友好的专有电子邮件服务替代方案,完全符合开源软件和用户隐私的精神。

发送愉快!🚀