我创建了一个新的GMAIL帐户,以通过Flask设置SMTP服务器。我在底部显示错误。
此做法来自本教程:https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-x-email-support
我想练习使用JWT,并拥有此SMTP阻止程序。
File "c:\users\c94145\appdata\local\programs\python\python37-32\lib\smtplib.py", line 359, in send
raise SMTPServerDisconnected('please run connect() first')
smtplib.SMTPServerDisconnected: please run connect() first
config.py
import os
from dotenv import load_dotenv
basedir = os.path.abspath(os.path.dirname(__file__))
load_dotenv(os.path.join(basedir, '.env'))
class Config(object):
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'mysql://root:abc123@127.0.0.1/blog'
SQLALCHEMY_TRACK_MODIFICATIONS = False
LOG_TO_STDOUT = os.environ.get('LOG_TO_STDOUT')
MAIL_SERVER = os.environ.get('smtp.gmail.com')
MAIL_PORT = int(os.environ.get('MAIL_PORT') or 587)
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
MAIL_USERNAME = os.environ.get('name@gmail.com')
MAIL_PASSWORD = os.environ.get('password69')
ADMINS = ['name@gmail.com']
LANGUAGES = ['en', 'es']
MS_TRANSLATOR_KEY = os.environ.get('MS_TRANSLATOR_KEY')
ELASTICSEARCH_URL = os.environ.get('ELASTICSEARCH_URL')
REDIS_URL = os.environ.get('REDIS_URL') or 'redis://'
POSTS_PER_PAGE = 25
(venv) $ set MAIL_SERVER=smtp.googlemail.com
(venv) $ set MAIL_PORT=587
(venv) $ set MAIL_USE_TLS=1
(venv) $ set MAIL_USERNAME=name@gmail.com
(venv) $ set MAIL_PASSWORD=password69
>>> from flask_mail import Message
>>> from app import mail
>>> msg = Message('test subject', sender=app.config['ADMINS'][0],
... recipients=['your-email@example.com'])
>>> msg.body = 'text body'
>>> msg.html = '<h1>HTML body</h1>'
>>> mail.send(msg)
错误:
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近): 文件“”,第1行,位于 发送中的文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ site-packages \ flask_mail.py”,第492行 message.send(连接) 退出中的文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ site-packages \ flask_mail.py”,第152行 self.host.quit() 文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ smtplib.py”,行984,退出 res = self.docmd(“退出”) 文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ smtplib.py”,行420,在docmd中 self.putcmd(cmd,args) 在putcmd中的行367中的文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ smtplib.py” 自我发送(str) 发送中的文件“ c:\ users \ c94145 \ appdata \ local \ programs \ python \ python37-32 \ lib \ smtplib.py”,行359 提高SMTPServerDisconnected('请先运行connect()') smtplib.SMTPServerDisconnected:请先运行connect()