from flask import current_app from flask_mail import Mail, Message def send_verification_email(to_email: str, token: str) -> None: verify_url = f"{current_app.config['FRONTEND_URL']}/auth/verify?token={token}" html_body = f'Click here to verify your account.' msg = Message( subject="Verify your account", recipients=[to_email], html=html_body, sender=current_app.config.get('MAIL_DEFAULT_SENDER', 'no-reply@reward-app.local') ) try: Mail(current_app).send(msg) print(f"[EMAIL to {to_email}] Verification: {verify_url}") except Exception: print(f"Failed to send email to {to_email}. Verification link: {verify_url}") def send_reset_password_email(to_email: str, token: str) -> None: reset_url = f"{current_app.config['FRONTEND_URL']}/auth/reset-password?token={token}" html_body = f'Click here to reset your password.' msg = Message( subject="Reset your password", recipients=[to_email], html=html_body, sender=current_app.config.get('MAIL_DEFAULT_SENDER', 'no-reply@reward-app.local') ) try: Mail(current_app).send(msg) print(f"[EMAIL to {to_email}] Reset password: {reset_url}") except Exception: print(f"Failed to send email to {to_email}. Reset link: {reset_url}") def send_pin_setup_email(to_email: str, code: str) -> None: html_body = f"""
To set your Parent PIN, enter the following code in the app:
This code is valid for 10 minutes.
If you did not request this, you can ignore this email.