Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用Flask发送电子邮件_Python_Python 3.x_Flask_Timeoutexception_Flask Mail - Fatal编程技术网

Python 用Flask发送电子邮件

Python 用Flask发送电子邮件,python,python-3.x,flask,timeoutexception,flask-mail,Python,Python 3.x,Flask,Timeoutexception,Flask Mail,我正在关注Miguel Grinberg的Flask Web开发书,我在他的电子邮件章节遇到了一个问题 以下是他的配置: import os # ... app.config["MAIL_SERVER"] = "smtp.googlemail.com" app.config["MAIL_PORT"] = 587 app.config["MAIL_USE_TLS"] = True app.config["MAIL_USERNAME"] = os.environ.get("MAIL_USERNAME

我正在关注Miguel Grinberg的Flask Web开发书,我在他的电子邮件章节遇到了一个问题

以下是他的配置:

import os
# ...
app.config["MAIL_SERVER"] = "smtp.googlemail.com"
app.config["MAIL_PORT"] = 587
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USERNAME"] = os.environ.get("MAIL_USERNAME")
app.config["MAIL_PASSWORD"] = os.environ.get("MAIL_PASSWORD")
设置环境变量后,我进入shell并尝试运行以下代码:

(venv) $ flask shell
>>> from flask_mail import Message
>>> from hello import mail
>>> msg = Message("test email", sender="you@example.com", recipients=["you@example.com])
>>> msg.body = "This is plain text body"
>>> msg.html = "This is <b>HTML</b> body"
>>> with app.app_context():
...    mail.send(msg)
...

我硬编码了“MAIL\u USERNAME”和“MAIL\u PASSWORD”变量,但我又犯了同样的错误

由于没有任何效果,以及之前关于这个问题的问题非常古老(4年),我认为可能值得再次提出这个问题

如果有人知道我做错了什么,请告诉我。

谢谢

请确保您允许不太安全的应用程序连接到您的Google帐户。

以下是链接:

使用以下参数进行尝试:

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465

下面是一个适合我的例子:

import os
from flask import Flask, jsonify
from flask_mail import Mail, Message

app = Flask(__name__)

app.config["MAIL_SERVER"]='smtp.gmail.com'
app.config["MAIL_PORT"]=587
app.config["MAIL_USE_TLS"]=False
app.config["MAIL_USE_SSL"]=True
app.config["MAIL_USERNAME"]=os.environ.get("MAIL_USERNAME")
app.config["MAIL_PASSWORD"]=os.environ.get("MAIL_PASSWORD")

mail = Mail(app)    
msg = Message(
              <your subject>,
              sender=os.environ.get("MAIL_USERNAME"),
              recipients=<recipiente e-mail>,
              html=<your html template>   
             )

@app.route('/sendmail')
def publish():    
   mail.send(msg)
   return jsonify({'message': 'Your message has been sent successfully'}), 200

if __name__ == '__main__':
       app.run()
导入操作系统
从烧瓶导入烧瓶,jsonify
从电子邮件导入邮件、消息
app=烧瓶(名称)
app.config[“邮件服务器”]=“smtp.gmail.com”
app.config[“邮件端口”]=587
app.config[“邮件使用”]=False
app.config[“邮件使用SSL”]=True
app.config[“MAIL\u USERNAME”]=os.environ.get(“MAIL\u USERNAME”)
app.config[“MAIL\u PASSWORD”]=os.environ.get(“MAIL\u PASSWORD”)
邮件=邮件(应用程序)
消息(
,
sender=os.environ.get(“MAIL\u用户名”),
收件人=,
html=
)
@app.route(“/sendmail”)
def publish():
邮件发送(msg)
返回jsonify({'message':'您的邮件已成功发送'}),200
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()

我已经做到了。我还做了其他建议的步骤
app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 465
import os
from flask import Flask, jsonify
from flask_mail import Mail, Message

app = Flask(__name__)

app.config["MAIL_SERVER"]='smtp.gmail.com'
app.config["MAIL_PORT"]=587
app.config["MAIL_USE_TLS"]=False
app.config["MAIL_USE_SSL"]=True
app.config["MAIL_USERNAME"]=os.environ.get("MAIL_USERNAME")
app.config["MAIL_PASSWORD"]=os.environ.get("MAIL_PASSWORD")

mail = Mail(app)    
msg = Message(
              <your subject>,
              sender=os.environ.get("MAIL_USERNAME"),
              recipients=<recipiente e-mail>,
              html=<your html template>   
             )

@app.route('/sendmail')
def publish():    
   mail.send(msg)
   return jsonify({'message': 'Your message has been sent successfully'}), 200

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