Я настраиваю конфигурацию Python Flask-Mail с помощью smtp.gmail.com, я правильно следовал инструкциям, но продолжаю получать сообщение об ошибке [Errno 0].
Я использую подсистему Windows дляLinux, я загрузил и Python 2, и Python 3 в часть Linux и, используя Xming Server, для генерации Sublime Text для написания моего кода Python.
Это мой код для конфигурации флеш-почты:
app.config.update(
MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 465,
MAIL_USE_TLS = False,
MAIL_USE_SSL = True,
MAIL_USERNAME = os.environ.get('EMAIL_USER'),
MAIL_PASSWORD = os.environ.get('EMAIL_PASS')
)
mail = Mail(app)
Вот мои функции сброса пароля:
@users.route("/reset_password", methods=['GET', 'POST'])
def reset_request():
if current_user.is_authenticated:
return redirect(url_for('main.home'))
form = RequestResetForm()
if form.validate_on_submit():
user = User.query.filter_by(email=form.email.data).first()
send_reset_email(user)
flash('An email has been sent with instructions to reset your password.', 'info')
return redirect(url_for('users.login'))
return render_template('reset_request.html', title='Reset Password', form=form)
@users.route("/reset_password/<token>", methods=['GET', 'POST'])
def reset_token(token):
if current_user.is_authenticated:
return redirect(url_for('main.home'))
user = User.verify_reset_token(token)
if user is None:
flash('That is an invalid or expired token', 'warning')
return redirect(url_for('users.reset_request'))
form = ResetPasswordForm()
if form.validate_on_submit():
hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
user.password = hashed_password
db.session.commit()
flash('Your password has been update! You are now able to log in', 'success')
return redirect(url_for('users.login'))
return render_template('reset_token.html', title="Reset Passowrd", form=form)
def send_reset_email(user):
token = user.get_reset_token()
msg = Message('Password Reset Request', sender='noreply@demo.com', recipients=[user.email])
msg.body = f'''To reset your password, visit the following link:
{url_for('users.reset_token', token=token, _external=True)}
If you did not make this request then simply ignore this email and no changes will be made
'''
mail.send(msg)
И это ошибка, которую я получаю ...
builtins.OSError OSError: [Errno 0] Ошибка
Я пытаюсь сделать пароль сброса, когда пользователь вводит форму восстановления пароля, он должен отправить электронное письмо, но это не работает, и вместо этого я получаю OSError.Заранее спасибо.