flask邮件发送问题

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]
>>>

请问是哪里的错误?

阅读 2.5k
1 个回答

很明显,你的MAIL_SERVER,也就是stmp.163.com需要配置,让其支持POP3或STMP。主要是邮箱的配置有问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题