Listmonk 邮件订阅管理部署教程

Listmonk 是一款使用 Go 语言编写的高性能开源邮件列表和 Newsletter 管理系统。它可以替代 Mailchimp、Sendinblue 等商业邮件营销服务,让你完全掌控订阅者数据和邮件发送过程。Listmonk 性能出色,单实例可以管理数百万订阅者,并以每分钟数千封的速度发送邮件。

一、Listmonk 功能特点

  • 高性能:Go 语言编写,单实例支持百万级订阅者和高速批量发送。
  • 邮件模板:内置 HTML 模板编辑器,支持可视化和代码编辑。
  • 订阅管理:支持多个邮件列表、订阅者分组和标签管理。
  • 营销活动:创建和管理邮件营销活动(Campaign),支持定时发送。
  • 统计分析:跟踪邮件打开率、点击率等核心指标。
  • 多 SMTP:支持配置多个 SMTP 服务器,分散发送压力。
  • API 接口:完整的 REST API 用于程序化管理。
  • 订阅表单:自动生成嵌入式订阅表单和公开订阅页面。

二、环境准备

  • 搬瓦工 VPS 一台,512MB 内存即可(使用优惠码 NODESEEK2026 享受 6.77% 折扣)。
  • 已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。
  • 一个 SMTP 邮件发送服务(可以使用自建邮件服务器或 Amazon SES 等服务)。

三、Docker Compose 部署

mkdir -p /opt/listmonk
cat > /opt/listmonk/docker-compose.yml <<'EOF'
version: '3.8'

services:
  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: listmonk_password
      POSTGRES_USER: listmonk
      POSTGRES_DB: listmonk
    volumes:
      - pg_data:/var/lib/postgresql/data

  listmonk:
    image: listmonk/listmonk:latest
    restart: always
    depends_on:
      - db
    ports:
      - "9000:9000"
    command: [sh, -c, "yes | ./listmonk --install && ./listmonk"]
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /opt/listmonk/config.toml:/listmonk/config.toml

volumes:
  pg_data:
EOF

3.1 创建配置文件

cat > /opt/listmonk/config.toml <<'EOF'
[app]
address = "0.0.0.0:9000"
admin_username = "admin"
admin_password = "your_admin_password"

[db]
host = "db"
port = 5432
user = "listmonk"
password = "listmonk_password"
database = "listmonk"
ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"
EOF

四、启动服务

cd /opt/listmonk
docker compose up -d

首次启动会自动初始化数据库。访问 http://VPS_IP:9000 使用管理员账号登录。

五、配置 SMTP

登录后进入「Settings」>「SMTP」配置邮件发送服务器:

  • Host:SMTP 服务器地址
  • Port:SMTP 端口(587 或 465)
  • Auth protocol:认证方式(通常选 login)
  • Username/Password:SMTP 账号密码
  • TLS:启用 TLS 加密

如果你已经部署了 MailcowMailu,可以直接使用自建邮件服务器作为 SMTP。也可以使用 Amazon SES、SendGrid 等第三方发送服务。

六、创建邮件列表和活动

6.1 创建邮件列表

  1. 进入「Lists」页面,点击「New list」。
  2. 输入列表名称和描述。
  3. 选择类型:Public(公开订阅)或 Private(手动管理)。
  4. 选择订阅确认方式:Single opt-in 或 Double opt-in。

6.2 创建邮件模板

在「Campaigns」>「Templates」中创建邮件模板。Listmonk 使用 Go 模板语法,支持变量替换:

<!-- 模板中的变量 -->
{{ .Subscriber.Name }}   - 订阅者姓名
{{ .Subscriber.Email }}  - 订阅者邮箱
{{ .Campaign.Name }}     - 活动名称
{{ .UnsubscribeURL }}    - 退订链接

6.3 发送邮件活动

  1. 创建新 Campaign,选择邮件模板和目标列表。
  2. 编辑邮件内容。
  3. 预览确认无误后,点击发送或设置定时发送。

七、配置反向代理

cat > /etc/nginx/sites-available/listmonk <<'EOF'
server {
    listen 80;
    server_name mail.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

ln -sf /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d mail.yourdomain.com

八、嵌入订阅表单

Listmonk 自动生成订阅表单 HTML 代码,可以嵌入到你的网站中。在「Lists」页面中获取表单代码并粘贴到你的网站 HTML 中。

九、数据备份

docker compose exec db pg_dump -U listmonk listmonk > /opt/listmonk/backup_$(date +%Y%m%d).sql

十、常见问题

邮件进入垃圾箱

确保 SMTP 发送域名的 SPF、DKIM、DMARC 记录正确配置。使用专业的邮件发送服务(如 Amazon SES)可以获得更好的送达率。

发送速率限制

在「Settings」中可以配置发送速率限制,避免触发 SMTP 服务商的限制。

总结

Listmonk 是自建 Newsletter 平台的最佳开源方案之一,性能强大且功能完善。搭配 Ghost 平台 使用可以同时实现博客和 Newsletter 功能。选购搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 享受 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。