虽然 Twikoo 评论系统早已配置完成,但邮件通知功能一直未启用。今天在检查之前文章时,偶然发现用户一个月前的留言 🤦 虽然已回复,但恐怕为时已晚。为了避免类似情况再次发生,决定为评论系统添加邮件通知功能。
操作步骤详解
一、注册 Mailgun 账号并绑定域名
首先,访问 Mailgun 官方网站 注册账号。Mailgun 提供了每天 100 封邮件的免费发信额度,对于个人博客来说完全够用。
提示:免费额度需要绑定信用卡。如果没有信用卡,可以 👉 野卡 | 一分钟注册,轻松订阅海外线上服务 创建虚拟信用卡。虚拟信用卡不仅能快速注册,还能有效控制限额,避免不必要的损失。
注册完成后,绑定你的域名(例如 senjianlu.com
),并按照 Mailgun 提供的 DNS 信息验证域名。具体操作如下:
- 添加自定义域名。
- 输入域名名称。
- 根据 Mailgun 提供的 DNS 信息,在域名解析服务中添加记录。
- 点击右上角的
Verify
按钮,等待验证通过。
二、获取 Mailgun 的 SMTP 信息
在 Mailgun 控制台中,进入 Send
-> Sending
-> Domains
,找到已绑定的域名。确保域名状态为“绿色可用”,然后点击 SMTP credentials
,查看默认创建的 postmaster
用户信息。
重置密码并保存,即可获取完整的 SMTP 信息。
以下是一个使用 Python 测试 SMTP 的示例代码:
python
import smtplib
from email.mime.text import MIMEText
from email.header import Header
邮件内容
msg = MIMEText(‘Hello, this is a test email.’, ‘plain’, ‘utf-8’)
msg[‘Subject’] = Header(‘这是一封内部测试邮件’, ‘utf-8’)
msg[‘From’] = ‘[email protected]’
msg[‘To’] = ‘测试邮件接收者’
SMTP 信息
smtp_server = ‘smtp.mailgun.org’
smtp_port = 587
smtp_user = ‘[email protected]’
smtp_password = ‘your_password’
收信方信息
to_addrs = [‘[email protected]’, ‘[email protected]’]
发信
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(smtp_user, smtp_password)
server.sendmail(smtp_user, to_addrs, msg.as_string())
print(‘Send email successfully.’)
except Exception as e:
print(‘Failed to send email:’, e)
finally:
server.quit()
确保邮件发送成功后,即可进行下一步。
三、配置 Twikoo 评论系统的邮件通知功能
进入博客评论模块,点击右上角的设置图标,选择“配置管理”,然后配置邮件通知功能。具体步骤如下:
- 填写 SMTP 信息。
- 设置发件人邮箱。
- 保存配置。
完成后,可以发送测试邮件验证功能是否正常。
四、测试邮件通知功能是否正常
1、配置管理员邮箱
当其他用户发表评论时,管理员邮箱会收到通知。
2、测试用户发布评论
发表一条评论,确保管理员邮箱能成功收到通知。
3、测试回复评论
回复一条评论,确保用户邮箱能成功收到通知。
五、设置 Mailgun 的发信上限
在 Mailgun 控制台的 Manage Account
中,设置 Custom Message Limit
。该值为单月发信上限,最低为 1000 封。根据需求调整即可。