Flask-Mail 尝试连接到 Gmail 时超时
Flask-Mail times out trying to connect to Gmail
我有一个非常小的 flask 应用程序,它使用 flask-mail 发送电子邮件,但是当我 运行 它什么也没有发生,没有错误,没有例外,没有!
这是代码
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
DEBUG = True
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_DEBUG = True
MAIL_USERNAME = "myemail@gmail.com"
MAIL_PASSWORD = "mypassword"
app.config.from_object(__name__)
mail = Mail(app)
@app.route("/")
def send_mail():
msg = Message("Hello",
sender="myemail@gmail.com",
recipients=["another_email@gmail.com"],
body="just testing",
)
mail.send(msg)
return "Message sent"
if __name__ == '__main__':
app.run()
更新
很长一段时间后我得到了这个错误
TimeoutError: [Errno 110] Connection timed out
看来我的问题解决了
首先去这个页面
解锁验证码
https://accounts.google.com/DisplayUnlockCaptcha
然后转到此页面以允许从安全性较低的应用程序进行访问
https://www.google.com/settings/security/lesssecureapps
我尝试了 Ali Faki 建议的解决方案,但它对我没有用,但当我进一步尝试时(简单的代码来检查问题出在哪里),结果发现邮件端口被云服务提供商阻止了(在我的例子中是 Linode),你必须设置一个域名并联系他们才能再次打开它。
和 Mustapha 一样。
找到这个:https://www.linode.com/docs/guides/running-a-mail-server/
在 Linode 上发送电子邮件
为了打击垃圾邮件,Linode 限制 2019 年 11 月 5 日之后创建的新帐户在所有 Linode 上的端口 25、465 和 587 上的出站连接。
如果您需要从您的 Linode 发送邮件,我们要求您首先为您计划用于发送邮件的任何 Linode 配置 (1) 有效的 DNS A 记录和 (2) rDNS 记录。然后,打开来自 Linode 管理器的支持票——我们会要求您提供将用于邮寄的 Linode 的名称。
完成这些步骤并提供信息后,我们的支持团队将很乐意审核您的请求。
我有一个非常小的 flask 应用程序,它使用 flask-mail 发送电子邮件,但是当我 运行 它什么也没有发生,没有错误,没有例外,没有!
这是代码
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
DEBUG = True
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_DEBUG = True
MAIL_USERNAME = "myemail@gmail.com"
MAIL_PASSWORD = "mypassword"
app.config.from_object(__name__)
mail = Mail(app)
@app.route("/")
def send_mail():
msg = Message("Hello",
sender="myemail@gmail.com",
recipients=["another_email@gmail.com"],
body="just testing",
)
mail.send(msg)
return "Message sent"
if __name__ == '__main__':
app.run()
更新
很长一段时间后我得到了这个错误
TimeoutError: [Errno 110] Connection timed out
看来我的问题解决了 首先去这个页面 解锁验证码
https://accounts.google.com/DisplayUnlockCaptcha
然后转到此页面以允许从安全性较低的应用程序进行访问 https://www.google.com/settings/security/lesssecureapps
我尝试了 Ali Faki 建议的解决方案,但它对我没有用,但当我进一步尝试时(简单的代码来检查问题出在哪里),结果发现邮件端口被云服务提供商阻止了(在我的例子中是 Linode),你必须设置一个域名并联系他们才能再次打开它。
和 Mustapha 一样。
找到这个:https://www.linode.com/docs/guides/running-a-mail-server/
在 Linode 上发送电子邮件
为了打击垃圾邮件,Linode 限制 2019 年 11 月 5 日之后创建的新帐户在所有 Linode 上的端口 25、465 和 587 上的出站连接。
如果您需要从您的 Linode 发送邮件,我们要求您首先为您计划用于发送邮件的任何 Linode 配置 (1) 有效的 DNS A 记录和 (2) rDNS 记录。然后,打开来自 Linode 管理器的支持票——我们会要求您提供将用于邮寄的 Linode 的名称。
完成这些步骤并提供信息后,我们的支持团队将很乐意审核您的请求。