使用Amazon SES搭建一个邮件营销的服务器,使用开源客户端Listmonk。
下面的示例步骤,使用了公网的VPS进行验证,生产环境的时候可以使用Nginx方向代理的方式实现。
搭建在本地,注意经常备份postgresql数据库的数据。
步骤#01:登录Amazon
在左上角搜索框中输入“SES”,就可以搜到Amazon Simple Email Service
步骤#02:验证域名
然后点击“Create Identity”
验证域名
输入一个自己的域名
点击Create Identity
开始验证
有3条CNAME,1条MX,一条TXT,去DNS后台设置一下。
注意它这里的MX记录,是这样的:10 feedback-smtp.us-east-1.amazonses.com,直接将这串字符填入到Value中去就可以。
验证成功后:
发送测试邮件
下一步
这个测试邮件并没有发给自己,发给了 [email protected],没法看到效果。
不过可能在“Create Identity”这步中验证一个自己的个人邮箱,比如Gmail邮箱,可以用于这里的Test Email测试,这一步我没有试过,但在Listmonk中发送测试邮件,就是这么操作的。
步骤#03:安装listmonk
首先安装数据库postgresql
sudo apt install postgresql postgresql-contrib
如果使用的是宝塔面板的话,可以直接进入“软件商店”,安装PostgreSQL管理器,然后安装一个数据库版本。
根据config.toml中的配置,新建一个listmonk数据库,用户名和密码都在这个配置文件中有。
安装listmonk:
下载最新的发布版本:https://github.com/knadh/listmonk/releases ,上传到服务器。我下载的是:listmonk_2.4.0_linux_amd64.tar.gz
解压缩后:
安装流程第一步是产生一个配置文件:
命令:./listmonk --new-config
to generate config.toml. Then, edit the file.
这个需要使用root权限产生。
第二步:连接并初始化数据库
./listmonk --install
to install the tables in the Postgres DB.
成功的话,应该如下图所示:
注意:配置文件中需要修改登录地址为当前服务器的IP地址,默认是localhost:9000, 将Localhost改为VPS的地址。
步骤#04:配置listmonk
首先在AWS SES中创建一个用户名和密码
创建后,有3个字段:
IAM User Name
Smtp Username
Smtp Password
我们使用SMTP Username与SMTP Password
listmonk设置如下,host填写AWS后台显示的“SMTP endpoint”,例如email-smtp.us-east-1.amazonaws.com
如果发送测试邮件,报错“554 Message rejected: Email address is not verified.“,是因为没有将这个目标邮件地址在AWS SES中认证,这是因为新申请的账号处于沙盒期,必须认证过的邮箱才能接收邮件。(使用“Create Identity”认证邮箱),出沙盒的账号可以给任意邮箱发送邮件。
生产环境部署Listmonk
生产环境的时候,建议使用Nginx反向代理的方式实现:
参考:https://github.com/knadh/listmonk/issues/684
server { listen 80 default_server; listen [::]:80 default_server; server_name demo.listmonk.app; location / { proxy_pass http://127.0.0.1:9000; } }
listmonk配置The URL in your HTML shows :9000
, which means the URL is configured incorrectly in Settings -> General
. It should just be https://listmonk.14servers.net
(without :9000), as that’s what’s exposed to the public.
另外一个配置SSL的示例:https://yasoob.me/posts/setting-up-listmonk-opensource-newsletter-mailing/#setting-up-ssl
引用:
官方文档:https://listmonk.app/docs/
使用 Amazon SES 控制台、Amazon SES API、AWS 软件开发工具包或 AWS 命令行界面发送电子邮件。
2023年6月5日 at am10:03
非常不错 ,市面上的邮件订阅服务商太贵了
2023年6月5日 at am10:04
这个需要有一个稳定的SMTP服务,比如AWS这个就比较好,但不容易申请