| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | from typing import Optionalimport resendfrom flask import Flaskclass Mail:    def __init__(self):        self._client = None        self._default_send_from = None    def is_inited(self) -> bool:        return self._client is not None    def init_app(self, app: Flask):        if app.config.get('MAIL_TYPE'):            if app.config.get('MAIL_DEFAULT_SEND_FROM'):                self._default_send_from = app.config.get('MAIL_DEFAULT_SEND_FROM')            if app.config.get('MAIL_TYPE') == 'resend':                api_key = app.config.get('RESEND_API_KEY')                if not api_key:                    raise ValueError('RESEND_API_KEY is not set')                resend.api_key = api_key                self._client = resend.Emails            else:                raise ValueError('Unsupported mail type {}'.format(app.config.get('MAIL_TYPE')))    def send(self, to: str, subject: str, html: str, from_: Optional[str] = None):        if not self._client:            raise ValueError('Mail client is not initialized')        if not from_ and self._default_send_from:            from_ = self._default_send_from        if not from_:            raise ValueError('mail from is not set')        if not to:            raise ValueError('mail to is not set')        if not subject:            raise ValueError('mail subject is not set')        if not html:            raise ValueError('mail html is not set')        self._client.send({            "from": from_,            "to": to,            "subject": subject,            "html": html        })def init_app(app: Flask):    mail.init_app(app)mail = Mail()
 |