gpt4 book ai didi

python - flask_mail,邮件卡在线程上,从未发送过

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:55 25 4
gpt4 key购买 nike

我正在使用带 ssl 的 flask + socketio,我正在尝试发送邮件,但由于某种原因,发送邮件不起作用。

这是我的配置:

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'xxx@gmail.com'
app.config['MAIL_PASSWORD'] = 'xxx;'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
app.config['DEBUG'] = True

mail=Mail(app)

...

当我使用它时:

@app.route('/testMail')
def testMail():
msg = Message(
'Hello',
sender='xxx@gmail.com',
recipients=['xxx@gmail.com'])
msg.body = "This is the email body"
mail.send(msg)

return ""

这是错误日志:

File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 307, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 721, in sendall v = self.send(data[count:]) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 687, in send v = self._sslobj.write(data) error: [Errno 32] Broken pipe

...

File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 156, in configure_host host = smtplib.SMTP_SSL(self.mail.server, self.mail.port) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 796, in init SMTP.init(self, host, port, local_hostname, timeout) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 256, in init (code, msg) = self.connect(host, port) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 316, in connect self.sock = self._get_socket(host, port, self.timeout) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 801, in _get_socket new_socket = socket.create_connection((host, port), timeout) File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 575, in create_connection raise err error: [Errno 65] No route to host

出于某种原因,我无法发送任何电子邮件。由于 socketio + ssl 包装,它似乎卡住了。我不知道如何以正确的方式配置。

最佳答案

我遇到了同样的问题,如果您在虚拟机中工作,请检查 ssh 端口的网络连接,在我的情况下,我使用 vagrant,我启用了ssh 端口的连接,这段代码对我有用:

from flask import Flask
from flask_mail import Mail, Message

# object Flask and object Mail

app = Flask(__name__)
#configuration flask to Mail
app.config.update(
MAIL_SERVER = "smtp.gmail.com",
MAIL_PORT = 465,
MAIL_USERNAME = 'xxx@gmail.com', #user mail
MAIL_PASSWORD = 'xxx',
MAIL_USE_TLS = False,
MAIL_USE_SSL = True,
MAIL_DEFAULT_SENDER = 'xxx@gmail.com', #user that will go email)
mail = Mail(app)

@app.route("/index")
def index():
return "ok"


@app.route("/Test Mail")
def test_mail():
"""route to test email by flask mail."""
msj = "This is a test to send mail with flask."
recipients = ["xxxemail@gmail.com"]
msg_object = Message("hello", recipients)
msg_object.body = "Hello, this email is a test"
mail.send(msg_object)
return "Sent"



if __name__ == '__main__':
app.run(host="0.0.0.0", port=7000, debug=True)

此外,您应该验证 Gmail 服务 中的内置安全功能是否可以阻止此登录尝试。登录您的帐户并访问https://www.google.com/settings/security/lesssecureapps .

关于python - flask_mail,邮件卡在线程上,从未发送过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com