使用Resend SMTP服务实现Waline评论邮件通知

参考文章:

  • Hexo博客进阶:为Next主题添加Waline评论系统
  • Hexo NexT Waline
  • Waline快速上手
  • Waline评论通知
  • Docker部署下配置Waline的QQ邮箱提醒
  • [教程]CF+Resend收发邮件

原本博客使用来必力(LiveRe)作为评论系统,但是在使用的过程中发现来必力不仅卡,而且在移动端有广告,所以便迁移到了Waline,Waline的安装教程可以参照Waline快速上手。在后续的流程中,假设你已经按照教程将Waline部署好,只是没有邮件提醒的功能。

先贴出我_config.yml中的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# ... existing code ...
# Waline Config File
# For more information:
# - https://waline.js.org
# - https://waline.js.org/reference/component.html
waline:
# New! Whether enable this plugin
enable: true

# Waline server address url, you should set this to your own link
serverURL: https://waline.example.com # 换成你自己的服务地址

# Waline library CDN url, you can set this to your preferred CDN
# libUrl: https://unpkg.com/@waline/client@v3/dist/waline.umd.js

# Waline CSS styles CDN url, you can set this to your preferred CDN
cssUrl: https://unpkg.com/@waline/client@v3/dist/waline.css

# Custom locales
locale:
placeholder: 请畅所欲言! # Comment box placeholder

# If false, comment count will only be displayed in post page, not in home page
commentCount: true

# Pageviews count, Note: You should not enable both `waline.pageview` and `leancloud_visitors`.
pageview: false

# Custom emoji
emoji:
- https://unpkg.com/@waline/[email protected]/bmoji
- https://unpkg.com/@waline/[email protected]/qq
- https://unpkg.com/@waline/[email protected]/weibo
- https://unpkg.com/@waline/[email protected]/bilibili
- https://unpkg.com/@waline/[email protected]/alus
- https://unpkg.com/@waline/[email protected]/tw-emoji
- https://unpkg.com/@waline/[email protected]/tw-body
- https://unpkg.com/@waline/[email protected]/tw-food
- https://unpkg.com/@waline/[email protected]/tw-natural
- https://unpkg.com/@waline/[email protected]/tw-object
- https://unpkg.com/@waline/[email protected]/tw-symbol
- https://unpkg.com/@waline/[email protected]/tw-people
- https://unpkg.com/@waline/[email protected]/tw-sport
- https://unpkg.com/@waline/[email protected]/tw-time
- https://unpkg.com/@waline/[email protected]/tw-travel
- https://unpkg.com/@waline/[email protected]/tw-weather
- https://unpkg.com/@waline/[email protected]/tw-flag

# Comment information, valid meta are nick, mail and link
meta:
- nick
- mail
- link

# Set required meta field, e.g.: [nick] | [nick, mail]
requiredMeta:
- nick
- mail

# Language, available values: en-US, zh-CN, zh-TW, pt-BR, ru-RU, jp-JP, fr-FR, es-MX
lang: zh-CN

# Word limit, no limit when setting to 0
# wordLimit: 0

# Whether enable login, can choose from 'enable', 'disable' and 'force'
login: disable

# comment per page
pageSize: 10
# ... existing code ...

Waline快速上手中,只对下面的三个环境变量进行了配置:

  • LEAN_ID: AppID
  • LEAN_KEY: AppKey
  • LEAN_MASTER_KEY: MasterKey

上面没有涉及到任何关于SMTP的配置,所以要想实现评论邮件通知,自然需要额外的设置。

但是如果只是简单的使用QQ邮箱进行评论邮件通知的话,也不会有这篇文章,本文的解决方案让你可以使用类似于[email protected]的发件人进行发件,同时不需要使用类似于MXroute的域名邮件服务,且全程免费。

步骤如下(此时Waline服务已经部署完毕):

  1. 注册Resend账号;

  2. 在左侧Domains页中增加一个域名,注意,这里需要增加一个二级域名,如032802.xyz,增加域名时需要验证DNS记录,建议将域名托管在Cloudflare,这样可以一键创建DNS记录;

  3. 在左侧API Keys页中创建一个API Key;

  4. 在左侧Settings页中找到SMTP页,查看Resend的SMTP信息如下:

    • Host: smtp.resend.com
    • Port: 465
    • User: resend
    • Password: YOUR_API_KEY
  5. 然后回到Vercel中添加环境变量的位置,依照Waline评论通知,增加以下环境变量:

    • SMTP_HOST: smtp.resend.com
    • SMTP_PORT: 465
    • SMTP_USER: resend
    • SMTP_PASS: YOUR_API_KEY
    • SMTP_SECURE: true
    • SITE_NAME: Karl的博客
    • SITE_URL: https://blog.032802.xyz/
    • AUTHOR_EMAIL: 你想要接收邮件通知的邮箱
    • SENDER_NAME: Karl的博客
    • SENDER_EMAIL: [email protected]
  6. 添加后点击Redeploy,等待其Redeploy结束;

  7. 进行评论,测试是否正确设置。

最后,如果你使用WordPress作为CMS,同样可以使用Resend的SMTP服务来进行发件,附上WP Mail SMTP扩展的配置信息:

  • 发件人:[email protected]
  • 强制使用[发件人电子邮件地址]设置:启用;
  • 发件人名称:Karl的博客
  • 强制使用[发件人名称]设置:启用;
  • 返回路径:停用;
  • 邮件程序:其他SMTP
  • SMTP主机:smtp.resend.com
  • 加密:SSL
  • SMTP端口:465
  • 自动TLS:启用;
  • 认证:启用;
  • SMTP用户名:resend
  • SMTP密码:YOUR_API_KEY