虽然我早早配置了 Twikoo 评论系统,但一直未能设置邮件通知功能。今天在检查之前的文章时,偶然发现了用户一个月前的留言 🤦 虽然我已回复,但恐怕无法帮助他。为了避免类似问题,再加上评论通知功能吧。
操作步骤
一、注册 Mailgun 账号并绑定域名
官方网址:Mailgun
Mailgun 提供免费的每日 100 封邮件的发信额度,对于个人博客来说绰绰有余。
注意:免费额度需要绑定信用卡。如果没有信用卡,可以在这里创建:ACCPAY。使用虚拟信用卡的另一个好处是可以很好地控制限额,避免被刷后的损失。
注册完账号后,我们需要绑定域名。我绑定的是我的博客域名 senjianlu.com
,具体操作如下:
接下来,按照给定的 DNS 信息验证域名即可:
点击右上角的 Verify
按钮,等待验证通过即可:
二、获取 Mailgun 的 SMTP 信息
该域名发信的 SMTP 信息在 Send
-> Sending
-> Domains
中的对应域名下:
进入域名相关页后,点击 SMTP credentials
即可查看 SMTP 的相关信息,默认创建了一个 postmaster
用户:
点击 Reset Password
重置并保存密码,就得到了完整的 SMTP 信息。
使用 Python 编写一个 Demo 测试是否可以正常发信:
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’] = ‘测试邮件接收者’
发信方信息
subject = ‘Test Email’
smtp_server = ‘smtp.mailgun.org’
smtp_port = 587
smtp_user = ‘[email protected]’
smtp_password = ‘aaaaabbbbbbbbbb-ccdd-eexxxxxxx’
收信方信息
to_addrs = [‘[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()
提示:请尽量使用多个邮件接收者。我们在这一步只需要确认 Mailgun 的 SMTP 信息是正确的。
确认信息正确,收到邮件后即可开始下一步:
三、配置 Twikoo 评论系统的邮件通知功能
进入博客评论模块,点击右上角的设置图标:
选择配置管理:
配置邮件通知:
保存后,可以发送邮件测试一下:
四、测试邮件通知功能是否正常
1、配置管理员邮箱
当其他用户评论时,管理员邮箱会收到邮件通知:
2、测试用户发布评论
3、测试回复评论
五、设置 Mailgun 的发信上限
在 Mailgun 的控制台选择 Manage Account
:Account details
之后设置 Custom Message Limit
:
值是单月的发信上限,可以根据自己的需求设置:
最小值是 1000,我这里就设置了 1000。