from django.core.validators import EmailValidator
from django.core.exceptions import ValidationError
from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.conf import settings


def send_subscriptioin_confirmation_email(name, user_email):
    try:
        context = {
        'name': name
        }
        html_content = render_to_string('subscription_mail.html', context)
        text_content = strip_tags(html_content)  # Strip the HTML tags for the plain text version

        email = EmailMultiAlternatives(
        subject="Thank You for Subscribing to EPOO News Update",
        body=text_content,
        from_email=settings.EMAIL_HOST_USER,
        to=[user_email,],
        )
        email.attach_alternative(html_content, "text/html")
        email.send()

    except:
        print("Error sending confirmation")


def send_contact_confirmation_email(name, user_email):
    try:
        context = {
        'name': name
        }
        html_content = render_to_string('contact_mail.html', context)
        text_content = strip_tags(html_content)  # Strip the HTML tags for the plain text version

        email = EmailMultiAlternatives(
        subject="Thank You for Contacting EPOO Team",
        body=text_content,
        from_email=settings.EMAIL_HOST_USER,
        to=[user_email,],
        )
        email.attach_alternative(html_content, "text/html")
        email.send()

    except:
        print("Error sending confirmation")


def validate_email(email):
    validator = EmailValidator()
    try:
        validator(email)
        return True
    except ValidationError:
        return False