我正在使用 Flask-Mail 发送密码重置电子邮件。当我在开发服务器上尝试时,一切正常。当部署在 Ubuntu 上(使用 NGINX、Gunicorn)时,在很长的加载时间后发送电子邮件导致错误 502,所以我认为发送电子邮件没有问题,而是设置有问题。
部署后我的init代码:
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 中正确提供了信息
最佳答案
为客户禁用验证码 如果您未使用双因素身份验证并且您已验证 Python 源中的凭据正确无误,请按照以下步骤操作:
1.) Login to gmail in your browser
2.) Navigate to the DisplayUnclockCaptcha page.
3.) Click the continue button, and you will see the message 'Account access enabled Please try signing in to your Google account again from your new device or application.'
4.)Run your Python script - your login attempt should be successful.
关于nginx - Flask Mail 在 Ubuntu 上部署时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60362957/