Valine評論系統郵件提醒
- 2020 年 4 月 9 日
- 筆記
這幾天想到,別人給我發的評論,我還要到後台去看,實在是太麻煩了,於是發現了一個好項目valine-admin可以幫我發送郵件評論提醒,這樣我就可以實時收到別人給我發的評論。

本文章圖片素材,部分來自此項目的官網
設置valine郵件提醒
我們需要先確保你的valine可以正常發送郵件
如圖設置你的郵件主題
- 修改郵件主題:
你在某某網站的評論收到了新的評論
- 修改內容:將下面的程式碼複製到「內容」中,並將其中的你的網址首頁鏈接改為你的網址首頁鏈接。
<p>Hi, {{username}}</p> <p> 你在 {{appname}} 的評論收到了新的回復,請點擊查看: </p> <p><a href="你的網址首頁鏈接" style="display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: #3090e4; color: #fff; text-decoration: none;">馬上查看</a></p>
- 點擊「保存」按鈕

部署valine-admin
- 點擊
雲引擎 -> 設置
填寫程式碼庫並保存:https://github.com/zhaojun1998/Valine-Admin

- 切換到部署標籤頁,分支使用 master,點擊部署即可:


配置變數
我們需要設置如下參數:
必選參數
SITE_NAME
: 網站名稱。SITE_URL
: 網站地址, 最後不要加/
。SMTP_USER
: SMTP 服務用戶名,一般為郵箱地址。SMTP_PASS
: SMTP 密碼,一般為授權碼,而不是郵箱的登陸密碼,請自行查詢對應郵件服務商的獲取方式。SMTP_SERVICE
: 郵件服務提供商,支援QQ
、163
、126
、Gmail
、"Yahoo"
、......
,全部支援請參考 : Nodemailer Supported services。 — 如這裡沒有你使用的郵件提供商,請查看自定義郵件伺服器SENDER_NAME
: 寄件人名稱。

請注意:如果你使用企業郵箱
,那麼你需要添加其他參數,請參考下方的自定義郵件伺服器
自定義郵件伺服器
如 SMTP_SERVICE
中沒有你使用的郵件服務提供商, 也可以進行自定義。
參數配置如下:
SMTP_HOST
: 郵件服務提供商 SMTP 地址,如 qq :smtp.qq.com
,此項需要自行查詢或詢問其服務商。SMTP_PORT
: 郵件服務提供商 SMTP 埠, 此項需要自行查詢或詢問其服務商。SMTP_SECURE
: 是否啟用加密, 默認為true
,一般不需要設置,如有特殊請自行配置。 此項需要自行查詢或詢問其服務商。
注: 配置自定義郵件伺服器的話,請不要同時配置 SMTP_SERVICE。當 SMTP_SERVICE 未配置時才會啟用自定義郵件服務。
休眠策略
WEB服務
免費版的 LeanCloud 容器,是有強制性休眠策略的,不能 24 小時運行:
- 每天必須休眠 6 個小時
- 30 分鐘內沒有外部請求,則休眠。
- 休眠後如果有新的外部請求實例則馬上啟動(但激活時此次發送郵件會失敗)。
分析了一下上方的策略,如果不想付費的話,最佳使用方案就設置定時器,每天 7 – 23 點每 20 分鐘訪問一次,這樣可以保持每天的絕大多數時間郵件服務是正常的。
首先需要先配置下 Web 主機的域名,使用定時器時要用到。配置方式如下。

後台登錄需要帳號密碼,需要在這裡設置,只需要填寫 email
、password
、username
,這三個欄位即可, 使用 email
作為帳號登陸即可。(為了安全考慮,此 email
必須為配置中的 SMTP_USER
或 TO_EMAIL
, 否則不允許登錄)

LeanCloud 自帶定時器[推薦]
首先需要添加環境變數,ADMIN_URL
:Web 主機域名
,如圖所示(添加後重啟容器才會生效):


注意, LeanCloud 最近更新了定時器校驗規則, 需要將 Cron 表達式寫為: 0 */20 7-23 * * ?
高級功能
自定義郵件模板
目前內置了兩款主題,分別為 default
與 rainbow
, 需要在 雲引擎 -> 設置 -> 環境變數
中配置參數 TEMPLATE_NAME
,默認為 default
。
此配置會去尋找 template{TEMPLATE_NAME}
目錄下的 notice.ejs
與 send.ejs
模板文件,分別用於通知站長和通知遊客,另外歡迎提供郵件主題樣式。
為什麼我收不到郵件?
- 請確認評論時留下的郵箱不是環境變數里的
SMTP_USER
或TO_EMAIL
里的郵箱,原因詳見 7.30 更新日誌。 - 請確認修改環境變數後已重啟容器。
- 對於 QQ / 網易 163 郵箱,請確認你輸入的是 SMTP 的授權碼,而不是登陸密碼。QQ郵箱獲取授權碼 網易郵箱獲取授權碼
其他
更多功能請參考項目地址:
部落格內容遵循 署名-非商業性使用-相同方式共享 4.0 國際 (CC BY-NC-SA 4.0) 協議 本文永久鏈接是:https://mrhuanhao.cn/2020/03/25/emailreply/ 轉載時,請註明文章來源!!!