以下内容为本人的学习笔记,如需要转载,请将本段内容(无删改)张贴于文章顶部:微信公众号「ENG八戒」mp.weixin.qq.com/s/QHs6wbRCl…,更多无限制精彩内容欢迎查阅我的个人博客站点 ENG八戒
前不久刚上线了自己的博客网站,只是试玩了一些很基本的功能,比如访问网站、发表文章等,还有许多功能都没有来得及开放。
这不,有些要好的朋友就来找事了,说是进去看了我的文章内容就想留个言评论一下怎么的,却没得玩。因为留言必须先注册成为会员什么的,还发现暂时注册不了会员,有点遗憾的样子。
这时我想起我的网站还没有上线会员注册功能,因为 Ghost 提供的基础邮件服务在我上线网站时被我玩废了。
是时候要补上邮件这块功能了,这样才可以开放会员服务。
其实,在安装完 Ghost 之后首要的配置任务就是配置邮箱服务。有了邮件服务,可以发送一些事务性的邮件,比如用户邀请、注册确认、登录链接、密码恢复等。另外,基于批量电子邮件服务,还可以向所有成员推送新闻消息。
在配置批量电子邮件服务之前,应该先确保事务性邮件功能正常。我的服务器在上线之时,一度可以发送注册确认的邮件,但是试了几次就完蛋了,用不了了,哪里出了问题?
Ghost 在安装完成后就自带了 Nodemailer,如果可用的话,它会直接使用这个服务。同时,Ghost 也对 Mailgun 有非常好的支持,并且极力推荐将其用于批量邮件服务,因为 Mailgun 提供的服务性价比太好了,说白了就是便宜。
Mailgun 配置
Mailgun 是一项邮件发送服务,对于发送批量邮件,其性价比非常优秀,同时也是有提供免费额度的,说是每个月有 3000 封免费邮件。以我网站目前的访客和互动数量来说,这 3000 的额度完全可以满足。
不过,注册 Mailgun 也是有些门槛的。常规的注册路径是用自己的 email 地址注册帐号之后,需要对 Mailgun 发过来的注册邮件进行确认。因为需要过滤滥用注册的行为,确认时它会要求输入注册人的手机号。但是对手机号提出了要求,暂不支持中国大陆的手机号。
这时我就想到了接码平台(接收验证码),之前注册 ChatGPT 时也是用过这东西的。隔了这么久再上去平台一看,没有找到专门对 mailgun 的支持,所以选了一个其它平台服务,最后试了好几个地区的号都是收不到 mailgun 的验证码。
难啊,难于上青天!
后来,在中文圈里搜索到有些前辈也遇到过这个难处,说是可以在 mailgun 后台提交一个工单(ticket)给客户,说明自己的手机号无法收到验证码,需要平台帮忙处理一下。
在工单页面下拉选择
Account Management
类别,然后输入问题标题和具体内容,问题标题可以这样写:I can't verify my email。内容可以这样写:I can't verify my email because I clicked the link to enter my mobile phone number, and when I sent the verification code, it reminded me that I sent too many times and other reminders. This is My phone number +86 XXX XXXX XXXX.
好了,账号注册终于通过,也可以开始配置 mailgun 后台了。
域名配置
mailgun 默认提供了子域名,不过我这里打算使用自己的域名。使用自己的域名是为了发送邮件时增加可信度,减少被当作垃圾邮件过滤掉,并且有更多的控制和灵活性。
进入 Dashboard -> Send -> Sending -> Domain
点击右上角的 Add new domain
按钮进入添加页面
填自己的域名进去,Domain region 一栏的选择要记下,其它的默认也就可以了,最后点底部的确认。
切换到 Domain settings,并在右上角的 Domain 栏选中自己刚添加的域名
如果你需要统计发送给用户的邮件打开情况,可以找到 tracking 的 Open tracking,修改为 On。Click tracking 一般为 Off,修改要慎重!
DNS 配置
切换到 DNS Records,就可以看到所有需要在域名 DNS 后台添加的记录
按照上图的指示,登录域名提供商(以 godaddy 为例)后台,添加域名 DNS 记录,添加完如下
在域名提供商后台修改完毕后,回到 mailgun 的 DNS Records,右上角有个 Verify 按钮,点击它开始检查 DNS 配置是否生效。若生效,则各项前面会显示绿灯。
SMTP 证书
接着,需要为配置 Ghost 后台的邮件服务准备 SMTP 资格证书,包括主机 host、端口 port、协议、安全选项、用户名和密码等。有了这些信息,Ghost 后台的邮件服务才可以发送事务性邮件,比如注册确认邮、登录链接等。
切换到 SMTP credentials
如上图所示,其中用户名是 [email protected],密码需要点击 Reset password 重置,并记下。
Sending API key
还有批量向用户推送新闻消息时,需要用到 Sending API key
切换到 Sending API key
点击右上角的 Add sending key 添加 API key
填入相关的描述信息,方便记忆。
这个 API key 你只能看到一次,需要自己保存下来,后边有用到的地方。要是没有保存就删掉,再重新添加即可。
到此 mailgun 后台配置完毕。
Ghost 后台配置
用浏览器登录博客管理后台 englyf.com/ghost
点击左下角的设置按钮,进入设置页面
Newsletter sending 把开关打开
往下拉,找到 Mailgun,点击 Edit
在 Mailgun region 一栏选择对应的国家地区(与 mailgun 后台配置域名时 Domain region 保持一致),在 Mailgun domain 填入自己的域名 englyf.com,在 Mailgun private API key 填入 mailgun 后台配置域名时添加的 Sending API key。填完点击右上角的 Save 按钮。如下图:
这个 Mailgun private API key 会决定新闻消息 newsletter 是否能发送成功。设置完毕后,可以在推送文章前,通过发送预览邮件来测试功能是否正常。
再往下拉,找到 Membership。这部分影响会员注册功能。
点击 Portal Settings -> Customize,进入设置页面,再点击 Account page 标签。
Support email address 一栏的内容会作为注册确认邮件的发送者显示名,这个可以依据自己的喜好设置。
回到自己服务器的后台,用命令行终端进入 /var/www/ghost/
用编辑器打开 ghost 博客网站的配置文件 config.production.json
arduino代码解读复制代码sudo nano config.production.json
添加下面这段内容:
perl 代码解读复制代码"mail": {
"transport": "SMTP",
"from": "ENG八戒 " ,
"options": {
"service": "Mailgun",
"host": "smtp.mailgun.org",
"port": 587,
"secureConnection": false,
"auth": {
"user": "[email protected]",
"pass": "XXXXXXX"
}
}
},
transport 字段指明使用 SMTP 协议。from 字段指明新闻消息的发送者名,建议和上面的 Support email address 保持一致。service 指明邮件服务商是 mailgun,host 指明邮件服务器主机 smtp.mailgun.org
,端口 port 使用 587,secureConnection 指明不用加密连接(这里很关键,如果改成 true 那么基本上用 mailgun 发送事务邮件都是超时的,很遗憾这个选项不适用),user 和 pass 按照上面 SMTP 证书的信息填写。
修改完成配置文件,保存然后重启 Ghost 服务
代码解读复制代码ghost restart
恭喜你走到这一步,这是成功的必然,目前看不到中文圈里其它有如此详细的 ghost 配置踩坑经历。
是时候检验一下会员功能了,用浏览器打开 englyf.com,先注册一个小号,收到注册确认邮件后点击确认,再登录博客,写下第一条留言:
Well done!
评论记录:
回复评论: