文章内容
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 的方式加密通信,这一点需要注意,其他没有什么太大的区别。
黄兵个人博客原创。
评论列表