跳转至主要内容

Ghost 进阶

通过 Gmail SMTP 为你的 Ghost 博客添加用户注册和登录功能

Ghost 博客的邮件分两种,Transactional Email 即为一对一的发送和接收,注册和登录就属于这种,直接使用基础的 SMTP 即可,例如 Gmail 就可以解决。

另一种是 Bulk Email,一对多,比如发送给所有订阅用户,这种需要借助第三方付费服务,目前 Ghost 只支持 Mailgun。

emails type in ghost blog

在没有配置自定义 SMTP 信息的场景下,Ghost 默认使用 Nodemailer 尝试发送 direct mail,你也可以尝试使用自己的邮箱发送注册或登录邮件,也许能收到,但是进垃圾箱的概率会大些。

而且如果你的 VPS 服务商屏蔽了 25 端口,将无法发送。

如果你想既免费又相对更加稳定,可以使用 Gmail 进行发送。

设置 SMTP 专用密码

  1. 访问并创建 password (谷歌账号必须先启用双重认证才能创建。名称可以随便取)
  2. 复制创建的密码之后,修改 Ghost 默认的配置文件:

首先切换到 Ghost 用户并进入 Ghost 博客所在路径,如果你使用本博客的一键脚本安装,则直接复制使用以下指令,否则请自行替换用户名和路径:

sudo -i -u ghost-art
cd /var/www/ghost

编辑配置文件:

nano config.production.json

默认配置是:

  "mail": {
    "transport": "Direct"
  },

替换成以下内容, user 为你的邮箱,替换 pass 的值为你的创建密码:

"mail": {
    "transport": "SMTP",
    "options": {
      "host": "smtp.gmail.com",
      "port": 587,
      "auth": {
        "user": "your-account@gmail.com",
        "pass": "pass word ti huan"
      }
    }
  },

修改完成之后,保存并退出(按 Ctrl + X,输入 Y 再回车)。

  1. 检查并重启 Ghost
ghost doctor
ghost restart

其他渠道

如果不想使用 Gmail 也可以了解一下 Brevo,免费版每天最多发送 300 封,大部分博客应该都够用,修改配置的方式是类似的,替换 userpass

Marketing Platform | See All Features & Compare Plans | Brevo
Explore and compare the features Brevo’s Marketing Platform plans: Free, Starter, Business & Enterprise.
"mail": {
    "transport": "SMTP",
    "options": {
      "host": "smtp-relay.brevo.com",
      "port": 587,
      "auth": {
        "user": "smtp@yourdomain.com",
        "pass": "yourpassword"
      }
    }
  },