文章内容

2018/2/12 10:39:28,作 者: 黄兵

454, b'Command not permitted when TLS active'

最近使用Flask发送163邮件的时候遇到了很多问题,前边根据报错提示,不断查询网络,现在问题已经解决,将问题记录下来,方便后人。

在配置发送邮件的时候报如下错误:

smtplib.SMTPResponseException: (454, b'Command not permitted when TLS active')

出现这个错误的原因是163邮箱不支持TLS,即使配置了MAIL_USE_TSL=flase,也会出现这个错误提示,最好的办法就是注释这段代码,错误代码如下:

# 163 mail config
    MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp.163.com')
    MAIL_PORT = int(os.environ.get('MAIL_PORT', '465'))
    MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS', 'false').lower() in \
                   ['true', 'on', '1','false']
    MAIL_USE_SSL = os.environ.get('MAIL_USE_SSL', 'true')
    MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
    FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
    FLASKY_MAIL_SENDER = 'Flasky Admin '
    FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')

修改代码如下:

# 163 mail config
MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp.163.com')
MAIL_PORT = int(os.environ.get('MAIL_PORT', '465'))
#MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS', 'true').lower() in \
               #['true', 'on', '1']
MAIL_USE_SSL = os.environ.get('MAIL_USE_SSL', 'true')
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
FLASKY_MAIL_SENDER = 'Flasky Admin '
FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')

注意上面的注释行。

最后附上163邮箱常见问题列表:企业退信的常见问题?

黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - 454, b'Command not permitted when TLS active'

分享到:

发表评论

评论列表