from models.configs.mailconfig import *

def send_email(subject, recipient_emails, body, html = False, attach = '', sender = ""):
    try :
        if sender == "": 
            sender = mailconfig['Sender']
        msg = Message(subject, sender = sender, recipients = recipient_emails)
        if html == True:
            msg.html = body
        else:
            msg.body = body

        if attach != '':
            with app.open_resources(attach['url']) as attachment:
                msg.attach(attach['url'], attach['type'], attachment.read())
        mail.send(msg)
    except Exception as e:
        raise Exception(e._message)

def generate_email_token(email, type = 'verify'):
    return mail_secret.dumps(email, salt=type)

def bulk_sms(users, subject, body, html = False):
    try:
        with mail.connect() as conn:
            for user in users:
                msg = Message(subject, sender = mailconfig['Sender'], recipients = [user['email']])
                if html == True:
                    msg.html = body
                else:
                    msg.body = body
                conn.send(msg)
    except Exception as e:
        raise Exception(e._message)

def confirm_email_token(token, type = 'verify'):
    try :
        return mail_secret.loads(token, salt=type, max_age=360000)
    except SignatureExpired:
        return False
        