文章内容

2023/3/3 17:35:11,作 者: 黄兵

Gmail 切换阿里云邮件推送存在的一些问题记录

以前网站邮件推送一直使用的是 Gmail,但是最近登录服务器看了一下日志,发现邮件发送用超了,超了之后有些邮件无法发出。

我们知道 Gmail 邮件每天有 500 封的限制,超过了就无法发送邮件。

最终报错内容如下:

smtplib.SMTPDataError: (550, b'5.4.5 Daily user sending quota exceeded. v5-20020a17090a6b0500b00229b00cc8desm4513913pjj.0 - gsmtp')

截图如下:


只能改用其他第三方的发信服务,找了一下还是阿里云的邮件推送比较实惠。

于是按照官方文档修改代码,原来 Gmail 发信的代码如下:

MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp.googlemail.com')
MAIL_PORT =
int(os.environ.get('MAIL_PORT', '587'))
MAIL_USE_TLS = os.environ.get(
'MAIL_USE_TLS', 'true').lower() in \
[
'true', 'on', '1']
MAIL_USERNAME = os.environ.get(
'MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get(
'MAIL_PASSWORD')
MAIL_SUBJECT_PREFIX =
'[auto sender]'
MAIL_SENDER = '管理员 <wo@gmail.com>'
ADMIN_EMAIL = os.environ.get('ADMIN_EMAIL')

使用阿里云邮件推送的代码如下:

MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtpdm.aliyun.com')
MAIL_PORT =
int(os.environ.get('MAIL_PORT', '465'))
MAIL_USE_SSL= os.environ.get(
'MAIL_USE_SSL', 'true').lower() in ['true', 'on', '1']
MAIL_USERNAME = os.environ.get(
'MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get(
'MAIL_PASSWORD')
MAIL_SUBJECT_PREFIX =
'[auto sender]'
MAIL_SENDER = '管理员 <autosend@a.live>'

使用的是 Flask 框架,用的是 Flask-Mail 库发送信件。

可以看到这里使用了 SSL 的方式加密通信,而 Gmail 使用 TLS 的方式加密通信,这一点需要注意,其他没有什么太大的区别。


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Gmail 切换阿里云邮件推送存在的一些问题记录

分享到:

发表评论

评论列表