我有一个非常小的烧瓶应用程序,使用烧瓶邮件发送电子邮件但是当我运行它没有任何事情发生没有错误没有例外没有!
这是代码
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
答案 0 :(得分:1)
看起来我解决了我的问题 首先转到此页面 解锁CAPTCHA
https://accounts.google.com/DisplayUnlockCaptcha
然后到此页面以允许来自不太安全的应用程序的访问 https://www.google.com/settings/security/lesssecureapps
答案 1 :(得分:0)
我尝试了Ali Faki提出的解决方案,但对我没有用,但是随着我进一步尝试(用简单的代码检查问题所在),结果发现邮件端口被云服务提供商(Linode)阻塞了。就我而言)),您必须设置一个域名并与他们联系以重新将其打开。
答案 2 :(得分:0)
与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的名称。
完成这些步骤并提供信息后,我们的支持团队将很乐意审核您的请求。