2015-05-31 58 views
1

我正嘗試使用Flask-Mail發送郵件。我用收件人創建郵件,但當我嘗試發送郵件時收到AssertionError: No recipients have been added。在下面的代碼中,我打印出消息收件人,它們是正確的。我如何解決這個錯誤?嘗試使用Flask-Mail發送郵件時未添加收件人

from flask import Flask 
from flask_mail import Message, Mail 

app = Flask(__name__) 
app.config.update(
    DEBUG=True, 
    MAIL_SERVER='smtp.gmail.com', 
    MAIL_PORT=465, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME='[email protected]', 
    MAIL_PASSWORD='mypassword' 
) 
mail = Mail(app) 

@app.route('/') 
def hello_world(): 
    msg=Message('hey hey hey', sender='[email protected]', recipients=['[email protected]']) 
    print(msg.sender, msg.recipients) 
    # ('[email protected]', ['[email protected]']) 
    print(msg.send_to) 
    # set(['[email protected]']) 
    mail.send_message(msg) 
    return 'Hello World!' 

if __name__ == '__main__': 
    app.run() 
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\Julian\PycharmProjects\flask_mail_test\flask_mail_test.py", line 26, in hello_world 
    mail.send_message(msg) 
    File "C:\Python27\lib\site-packages\flask_mail.py", line 503, in send_message 
    self.send(Message(*args, **kwargs)) 
    File "C:\Python27\lib\site-packages\flask_mail.py", line 493, in send 
    message.send(connection) 
    File "C:\Python27\lib\site-packages\flask_mail.py", line 428, in send 
    connection.send(self) 
    File "C:\Python27\lib\site-packages\flask_mail.py", line 176, in send 
    assert message.send_to, "No recipients have been added" 
AssertionError: No recipients have been added 

回答

3

您使用了錯誤的功能。 mail.send_message是構建和發送消息的快捷方式,它採用與Message相同的參數。使用mail.send(msg)發送現有的Message實例。

相關問題