這幾天想到,別人給我發的評論,我還要到后台去看,實在是太麻煩了,於是發現了一個好項目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
: 寄件人名稱。
{% noteblock warnring yellow %}
請注意:如果你使用企業郵箱
,那么你需要添加其他參數,請參考下方的自定義郵件服務器
{% endnoteblock %}
自定義郵件服務器
如 SMTP_SERVICE
中沒有你使用的郵件服務提供商, 也可以進行自定義。
參數配置如下:
SMTP_HOST
: 郵件服務提供商 SMTP 地址,如 qq :smtp.qq.com
,此項需要自行查詢或詢問其服務商。SMTP_PORT
: 郵件服務提供商 SMTP 端口, 此項需要自行查詢或詢問其服務商。SMTP_SECURE
: 是否啟用加密, 默認為true
,一般不需要設置,如有特殊請自行配置。 此項需要自行查詢或詢問其服務商。
{% noteblock warnring yellow %}
注: 配置自定義郵件服務器的話,請不要同時配置 SMTP_SERVICE。當 SMTP_SERVICE 未配置時才會啟用自定義郵件服務。
{% endnoteblock %}
休眠策略
WEB服務
免費版的 LeanCloud 容器,是有強制性休眠策略的,不能 24 小時運行:
- 每天必須休眠 6 個小時
- 30 分鍾內沒有外部請求,則休眠。
- 休眠后如果有新的外部請求實例則馬上啟動(但激活時此次發送郵件會失敗)。
分析了一下上方的策略,如果不想付費的話,最佳使用方案就設置定時器,每天 7 - 23 點每 20 分鍾訪問一次,這樣可以保持每天的絕大多數時間郵件服務是正常的。
首先需要先配置下 Web 主機的域名,使用定時器時要用到。配置方式如下。
后台登錄需要賬號密碼,需要在這里設置,只需要填寫 email
、password
、username
,這三個字段即可, 使用 email
作為賬號登陸即可。(為了安全考慮,此 email
必須為配置中的 SMTP_USER
或 TO_EMAIL
, 否則不允許登錄)
LeanCloud 自帶定時器[推薦]
首先需要添加環境變量,ADMIN_URL
:Web 主機域名
,如圖所示(添加后重啟容器才會生效):
{% noteblock warnring yellow %}
注意, LeanCloud 最近更新了定時器校驗規則, 需要將 Cron 表達式寫為: 0 */20 7-23 * * ?
{% endnoteblock %}
高級功能
自定義郵件模板
目前內置了兩款主題,分別為 default
與 rainbow
, 需要在 雲引擎 -> 設置 -> 環境變量
中配置參數 TEMPLATE_NAME
,默認為 default
。
此配置會去尋找 template\{TEMPLATE_NAME}
目錄下的 notice.ejs
與 send.ejs
模板文件,分別用於通知站長和通知游客,另外歡迎提供郵件主題樣式。
為什么我收不到郵件?
- 請確認評論時留下的郵箱不是環境變量里的
SMTP_USER
或TO_EMAIL
里的郵箱,原因詳見 7.30 更新日志。 - 請確認修改環境變量后已重啟容器。
- 對於 QQ / 網易 163 郵箱,請確認你輸入的是 SMTP 的授權碼,而不是登陸密碼。QQ郵箱獲取授權碼 網易郵箱獲取授權碼
其他
更多功能請參考項目地址:
我的同步更新博客地址: https://mrhuanhao.cn