Files
gander/web_server/blueprints/email.py
JustIceO7 36af1efe73 FEAT: Added get_email util
UPDATE: Updated forgot password email route, changed send_email from a route to an internal function
2025-02-01 23:56:50 +00:00

43 lines
1.2 KiB
Python

from flask import Blueprint
import smtplib
from email.mime.text import MIMEText
from os import getenv
from random import randrange
from dotenv import load_dotenv
load_dotenv()
email_bp = Blueprint("email", __name__)
def send_email(user_email) -> None:
"""
Send a verification email to the user.
"""
# Setup the sender email details
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_EMAIL = getenv("EMAIL")
SMTP_PASSWORD = getenv("EMAIL_PASSWORD")
# Setup up the receiver details
login_code = randrange(100000, 1000000)
body = f"Here is your login code: {login_code}" # Make this better
msg = MIMEText(body)
msg["Subject"] = "Reset Gander Login"
msg["From"] = SMTP_EMAIL
msg["To"] = user_email
# Send the email using smtplib
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as smtp:
try:
smtp.starttls() # TLS handshake to start the connection
smtp.login(SMTP_EMAIL, SMTP_PASSWORD)
smtp.ehlo()
smtp.send_message(msg)
except TimeoutError:
print("Server timed out")
except Exception as e:
print("Error: ", e)