2015-02-11 204 views
0

我使用Python Flask和Flask-Mail庫時出現問題。Python Flask電子郵件KeyError KeyError:'mail'

我得到一個錯誤:

KeyError: 'mail'

有人可以幫我解決這個問題?

我的代碼是:

# -*- coding: utf-8 -*- 
from flask import Flask 
from flask.ext.mail import Message 
from flask.ext.mail import Mail 
from ws import app 


class Email(): 

def __init__(self): 
    "" 
# 
# Enviar el email 
# 
def enviar_mail(self,subject, sender, recipients, text_body="hola mundo txt", html_body="hola mundo html"): 
    app = Flask(__name__) 

    app.config.update(dict(
     MAIL_SERVER = 'smtp.gmail.com', 
     MAIL_PORT = 465, 
     MAIL_USE_TLS = False, 
     MAIL_USE_SSL = True, 
     MAIL_USERNAME = '[email protected]', 
     MAIL_PASSWORD = 'mypasswd$%' 
    )) 

    mail = Mail(app) 
    mail.init_app(app) 
    msg = Message("Hello", sender="[email protected]",recipients=["[email protected]"]) 
    msg.body = "testing" 
    msg.html = "<b>testing</b>" 
    mail.send(msg) 

和錯誤是

KeyError 
KeyError: 'mail' 
Traceback (most recent call last) 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ 

mail.send(msg) 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask_mail.py", line 492, in send 

message.send(connection) 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask_mail.py", line 427, in send 

connection.send(self) 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask_mail.py", line 190, in send 

message.as_bytes() if PY3 else message.as_string(), 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask_mail.py", line 381, in as_string 

return self._message().as_string() 
File "/home/javier/python/wszbeltia/lib/python2.7/site-packages/flask_mail.py", line 307, in _message 

**ascii_attachments = current_app.extensions['mail'].ascii_attachments 
KeyError: 'mail'** 

回答

3

下調至flask_mail==0.9.0

這似乎是在0.9.1版本中迴歸。

+0

是的,你對 我解決了這個問題: pip uninstall flask-mail pip install flask_mail == 0.9.0 – daronwolff 2016-01-28 20:00:27