flask mail发送不出消息(smtp填写的是qq第三份授权码)

import os

from datetime import datetime

from flask.ext.moment import Moment

from flask.ext.script import Manager

from flask import Flask,render_template,session,redirect,url_for,flash

from flask.ext.bootstrap import Bootstrap

from flask.ext.wtf import Form

from wtforms import StringField,SubmitField

from wtforms.validators import Required

from flask.ext.sqlalchemy import SQLAlchemy

from flask.ext.script import Shell

from flask.ext.migrate import Migrate,MigrateCommand

from flask.ext.mail import Mail

from flask.ext.mail import Message

basedir = os.path.abspath(os.path.dirname(__file__))

app=Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI']=\

'sqlite:///'+os.path.join(basedir,'data.sqlite')

app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True

app.config['SECRET_KEY']='hard to guess string'

app.config['MAIL_SERVER']='smtp.qq.com'

app.config['MAIL_PORT']=587

app.config['MAIL_USE_TLS']=True

app.config['MAIL_USERNAME']=os.environ.get('MAIL_USERNAME')#‘####@qq.com’

app.config['MAIL_PASSWORD']= os.environ.get('MAIL_PASSWORD')‘#vmnjaqiwvofcbgbi’

app.config['FLASKY_MAIL_SUBJECT_PREFIX']='[FLASKY]'

app.config['FLASKY_MAIL_SENDER']='Flasky Admin ###@qq.com'

app.config['FLASKY_ADMIN']=os.environ.get['FLASKY_ADMIN']

moment=Moment(app)

manager=Manager(app)

bootstrap=Bootstrap(app)

db=SQLAlchemy(app)

mail=Mail(app)

migrate=Migrate(app,db)

manager.add_command('db',MigrateCommand)

class Role(db.Model):

__tablename__='roles'

id=db.Column(db.Integer,primary_key=True)

name=db.Column(db.String(64),unique=True)

users=db.relationship('User',backref='role',lazy='dynamic')

def __repr__(self):

return '<Role %r>'%self.name

class User(db.Model):

__tablename__='users'

id=db.Column(db.Integer,primary_key=True)

username=db.Column(db.String(64),unique=True,index=True)

role_id=db.Column(db.Integer,db.ForeignKey('roles.id'))

def __repr__(self):

return '<User %r>'%self.username

class NameForm(Form):

name=StringField('What is your name?',validators=[Required()])

submit=SubmitField('Submit')

def send_email(to,subject,template,**kwargs):

msg=Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX']+subject,

sender=app.config['FLASKY_MAIL_SENDER'],recipients=[to])

msg.body=render_template(template+'.txt',**kwargs)

msg.html=render_template(template+'.html',**kwargs)

mail.send(msg)

@app.route('/',methods=['GET','POST'])

def index():

form=NameForm()

if form.validate_on_submit():

user=User.query.filter_by(username=form.name.data).first()

if user is None:

user=User(username=form.name.data)

db.session.add(user)

session['known']=False

if app.config['FLASKY_ADMIN']:

send_email(app.config['FLASKY_ADMIN'], 'New User',

'mail/new_user', user=user)

else:

session['known']=True

session['name']=form.name.data

form.name.data=''

return redirect(url_for('index'))

return render_template('index.html',form=form,name=session.get('name'),

known=session.get('known',False))

def make_shell_context():

return dict(app=app,db=db,User=User,Role=Role)

manager.add_command("shell",Shell(make_context=make_shell_context))

@app.errorhandler(404)

def page_not_found(e):

return render_template('404.html'),404

@app.errorhandler(500)

def internal_server_error(e):

return render_template('500.html'),500

if __name__=='__main__':

manager.run()

然后输入export FLASKY_ADMIN=505082548@qq .com
图片描述
没有显示出发送邮件

以上是 flask mail发送不出消息(smtp填写的是qq第三份授权码) 的全部内容, 来源链接: utcz.com/a/164192.html

回到顶部