我正在使用flask-mail向用户发送一封包含新密码的电子邮件。当我运行代码时,我不断得到IOError错误的文件描述符
app.config.update(
DEBUG=True,
#EMAIL SETTINGS
MAIL_SERVER='smtp.gmail.com',
MAIL_PORT=465,
MAIL_USE_SSL=True,
MAIL_USE_TLS= False,
MAIL_USERNAME = 'myemail@gmail.com',
MAIL_PASSWORD = 'mypass'
)
mail = Mail(app)
@app.route('/api/account', methods= ['POST'])
def login():
e= request.json ['email']
u= request.json ['user']
p= request.json ['pass']
msg= Message("Your password", sender= 'myemail@gmail.com',recipients = ['destinationemail'])
msg.body= 'Your password is ' + hashedp
#msg.html ='<b> password </b>'
mail.send(msg)
return 'Your new password has been sent through email' 这与套接字和连接有关吗?如果需要,我可以发布完整的回溯
编辑完整回溯:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\flask\app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Python27\lib\site-packages\flask\app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "C:\Python27\lib\site-packages\flask\app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Python27\lib\site-packages\flask\app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "C:\Python27\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Python27\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Python27\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Python27\lib\site-packages\flask\app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\mpelixp\Documents\joanna\app2api.py", line 95, in login
mail.send(msg)
File "C:\Python27\lib\site-packages\flask_mail.py", line 491, in send
with self.connect() as connection:
File "C:\Python27\lib\site-packages\flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "C:\Python27\lib\site-packages\flask_mail.py", line 165, in configure_host
host.login(self.mail.username, self.mail.password)
File "C:\Python27\lib\smtplib.py", line 582, in login
self.ehlo_or_helo_if_needed()
File "C:\Python27\lib\smtplib.py", line 542, in ehlo_or_helo_if_needed
if not (200 <= self.ehlo()[0] <= 299):
File "C:\Python27\lib\smtplib.py", line 414, in ehlo
(code, msg) = self.getreply()
File "C:\Python27\lib\smtplib.py", line 370, in getreply
print>>stderr, 'reply:', repr(line)
IOError: [Errno 9] Bad file descriptor发布于 2015-06-30 15:14:48
如果它不起作用,你可以使用yagmail
import yagmail
yag = yagmail.SMTP(MAIL_USERNAME, MAIL_PASSWORD)
yag.send(to = e, contents = 'Your password is ' + hashedp)首先用pip install yagmail (或者Python3的pip3 )安装它。
它有很多功能,包括轻松地发送HTML电子邮件(带回退),通过指向文件和无密码脚本进行附加。
请参阅github上的更多内容。
https://stackoverflow.com/questions/31127410
复制相似问题