我使用烧瓶并需要发送电子邮件
我的代码
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'])
可能是什么问题?邮件地址的名称已更改。
答案 0 :(得分:0)
答案 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)