python代码:mail.py
from flask import Flask,render_template
from flask_script import Manager
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField
from wtforms.validators import Required
from flask import session,redirect,url_for
from flask_sqlalchemy import SQLAlchemy
import os
from flask_migrate import Migrate,MigrateCommand
from flask_mail import Mail,Message
app=Flask(__name__)
manager=Manager(app)
mail=Mail(app)
app.config['MAIL_SERVER']='stmp.163.com'
app.config['MAIL_PORT']=465
app.config['MAIL_USE_SSL']=True
app.config['MAIL_USERNAME']='******@163.com'
app.config['MAIL_PASSWORD']='******'
if __name__=='__main__':
# app.run(debug=True)
manager.run()
在虚拟环境中运行如下:
(venv) D:\python\pythonObject\Flasky>python mail.py shell
>>> from flask_mail import Message
>>> from mail import mail
>>> msg=Message('test subject',sender='21533983@qq.com',recipients='21533983@qq.com')
>>> msg.body='Text body'
>>> msg.html='<b>HTML</b> body'
>>> with app.app_context():
... mail.send(msg)
...
Traceback (most recent call last):
File "<console>", line 2, in <module>
File "D:\python\pythonObject\Flasky\venv\lib\site-packages\flask_mail.py", line 491, in send
with self.connect() as connection:
File "D:\python\pythonObject\Flasky\venv\lib\site-packages\flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "D:\python\pythonObject\Flasky\venv\lib\site-packages\flask_mail.py", line 158, in configure_host
host = smtplib.SMTP(self.mail.server, self.mail.port)
File "d:\python\python27\Lib\smtplib.py", line 256, in __init__
(code, msg) = self.connect(host, port)
File "d:\python\python27\Lib\smtplib.py", line 316, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "d:\python\python27\Lib\smtplib.py", line 291, in _get_socket
return socket.create_connection((host, port), timeout)
File "d:\python\python27\Lib\socket.py", line 575, in create_connection
raise err
error: [Errno 10061]
>>>
请问是哪里的错误?
很明显,你的MAIL_SERVER,也就是stmp.163.com需要配置,让其支持POP3或STMP。主要是邮箱的配置有问题。