nginx - Flask Mail 在 Ubuntu 上部署时不起作用
问题描述
我正在使用 Flask-Mail 发送密码重置电子邮件。当我在开发服务器上尝试它时,一切正常。当部署在 Ubuntu(使用 NGINX、Gunicorn)上时,在长时间加载后发送电子邮件会导致错误 502,所以我认为发送电子邮件没有问题,而是设置有问题。
部署后我的初始化代码:
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from flask_login import LoginManager
from flask_mail import Mail
from flask_socketio import SocketIO
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
app = Flask(__name__)
app.config['SECRET_KEY'] = config.get('SECRET_KEY')
app.config['SQLALCHEMY_DATABASE_URI'] = config.get('SQLALCHEMY_DATABASE_URI')
db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
login_manager = LoginManager(app)
login_manager.login_view = 'login'
login_manager.login_message_category = 'info'
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = config.get('EMAIL_USER')
app.config['MAIL_PASSWORD'] = config.get('EMAIL_PASS')
mail = Mail(app)
在 config.json 中正确提供了信息
解决方案
为客户端禁用 CAPTCHA 如果您未使用 2 因素身份验证并且您已验证 Python 源中的凭据正确,请执行以下步骤:
1.) 在浏览器中登录 gmail
2.) 导航到 DisplayUnclockCaptcha 页面。
3.) 单击继续按钮,您将看到消息“帐户访问已启用,请尝试从您的新设备或应用程序再次登录您的 Google 帐户。'
4.) 运行您的 Python 脚本 - 您的登录尝试应该会成功。
推荐阅读
- angular - 以角度对树节点的子节点进行排序
- php - SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select * from `users` where `email` = test@test.com limit 1)
- angular - 从 Cloud Firestore 中检索数据
- sql-server - 给一个数字添加一个 0,因为它还没有前导 0
- python - 我需要哪个版本的包不需要升级django
- ios - 根据在 TableViews 自定义单元格中点击的图像执行 segue
- php - 发送没有数据的 ajax 请求,PHP 检查 isset
- python - Python 3 Turtle - 按住 2 个键
- caffe - 为新的测试数据创建 LMDB
- python - pybind11 从 C++ 修改 numpy 数组