烧瓶电子邮件不发送

时间:2016-02-04 07:57:52

标签: python flask

我使用烧瓶并需要发送电子邮件

我的代码

from flask.ext.mail import Mail, Message
#mail config
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'mymail@gmail.com'
app.config['MAIL_PASSWORD'] = 'mypassword'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)

"发送"路线

@app.route('/send/')
def send():
    msg = Message('Hi', sender = 'mymail@gmail.com', recipients = ['recipient@gmail.com'])
    msg.body = "This is the email body sending with flask!"
    mail.send(msg)
    #msg.html = '<b>HTML</b> body'
    return "Sent"

但是点击上面的公司后我得到了错误

  

TypeError:__ init __()需要1个位置参数但是2个被赋予

File "I:\python\lib\site-packages\flask\app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "I:\python\lib\site-packages\flask\app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "I:\python\lib\site-packages\flask\app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "I:\python\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "I:\python\lib\site-packages\flask\app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "I:\python\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "I:\python\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "I:\python\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "I:\python\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "I:\python\lib\site-packages\flask\app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "G:\flask\fopster\hello.py", line 56, in send
msg = Message('Hi', sender = 'mymail@gmail.com', recipients = ['recipient@gmail.com'])

可能是什么问题?邮件地址的名称已更改。

3 个答案:

答案 0 :(得分:0)

尝试在导入

之后附加此内容
app=Flask(__name__)

您尚未初始化该应用。请参阅此文档here以详细了解。

答案 1 :(得分:0)

您正在实例化您的模型Message类,而不是烧瓶邮件Message class。

做类似的事情:

from flask.ext.mail import Mail, Message as MailMessage

@app.route('/send/')
def send():
    msg = MailMessage('Hi', sender = 'mymail@gmail.com', recipients = ['recipient@gmail.com'])
    msg.body = "This is the email body sending with flask!"
    mail.send(msg)
    #msg.html = '<b>HTML</b> body'
    return "Sent"

答案 2 :(得分:0)

检查一下。

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

mail=Mail(app)

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'your_email'
app.config['MAIL_PASSWORD'] = 'your_password'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_DEFAULT_SENDER'] = 'default_sender_email'
app.config['MAIL_ASCII_ATTACHMENTS'] = True
app.config['DEBUG'] = True

mail = Mail(app)

@app.route("/send")
def index():
    try:
        msg = Message('Subject', recipients = ['reciever_mail_id'])
        msg.body = "Hello Flask message sent from Flask-Mail"
        msg.html = "<b>TESTING HTML TAG</b>"
        mail.send(msg)
    except Exception as e:
        raise e
    return "Check Your Inbox !!!"

if __name__ == '__main__':
    app.run(debug = True)