簡體   English   中英

Python Flask 電子郵件 KeyError KeyError: 'mail'

[英]Python Flask Email KeyError KeyError: 'mail'

我在使用 Python Flask 和 Flask-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 = 'miaccount@gmail.com',
        MAIL_PASSWORD = 'mypasswd$%'
    ))

    mail = Mail(app)
    mail.init_app(app)
    msg = Message("Hello", sender="miaccount@gmail.com",recipients=["myrecipient@hotmail.com"])
    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'**

降級到flask_mail==0.9.0

這似乎是0.9.1版中的回歸。

我不能使用 flask_mail==0.9.0 它給了我 uicode 錯誤。

我需要使用flask_mail==0.9.1

我通過使用“ current_app ”而不是“ app ”解決了“電子郵件KeyError KeyError:'mail'”錯誤

from flask import current_app
mail = Mail(current_app)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM