microblog2/app/auth/email.py

38 lines
1.4 KiB
Python

from flask import render_template, current_app
from flask_babel import _
from app.email import send_email
import math, random
def generate_otp(user):
# Declare a digits variable
# which stores all digits
digits = "0123456789"
otp = ""
# length of password can be changed
# by changing value in range
for i in range(4):
otp += digits[math.floor(random.random() * 10)]
user.otp = otp
return otp
def send_otp_email(user):
otp = generate_otp(user)
send_email(_('[Microblog] Your one time passcode'),
sender=current_app.config['ADMINS'][0],
recipients=[user.email],
text_body=render_template('email/otp.txt',
user=user, otp=otp),
html_body=render_template('email/otp.html',
user=user, otp=otp))
def send_password_reset_email(user):
token = user.get_reset_password_token()
send_email(_('[Microblog] Reset Your Password'),
sender=current_app.config['ADMINS'][0],
recipients=[user.email],
text_body=render_template('email/reset_password.txt',
user=user, token=token),
html_body=render_template('email/reset_password.html',
user=user, token=token))