Source code for flask_unchained.bundles.mail.extensions.mail
from flask_mail import _MailMixin, Message
from flask_unchained import FlaskUnchained
from flask_unchained.utils import ConfigProperty, ConfigPropertyMetaclass
from types import FunctionType
from typing import *
[docs]class Mail(_MailMixin, metaclass=ConfigPropertyMetaclass):
"""
The `Mail` extension::
from flask_unchained.bundles.mail import mail
"""
server: str = ConfigProperty()
username: Optional[str] = ConfigProperty()
password: Optional[str] = ConfigProperty()
port: int = ConfigProperty()
use_tls: bool = ConfigProperty()
use_ssl: bool = ConfigProperty()
default_sender: str = ConfigProperty()
debug: Union[int, bool] = ConfigProperty()
max_emails: Optional[int] = ConfigProperty()
suppress: bool = ConfigProperty('MAIL_SUPPRESS_SEND')
ascii_attachments: bool = ConfigProperty()
send: FunctionType = ConfigProperty('MAIL_SEND_FN')
# skipcq: PYL-W0221 (parameters mismatch in overridden method)
[docs] def send_message(self,
subject_or_message: Optional[Union[Message, str]] = None,
to: Optional[Union[str, List[str]]] = None,
**kwargs):
"""
Send an email using the send function as configured by
:attr:`~flask_unchained.bundles.mail.config.Config.MAIL_SEND_FN`.
:param subject_or_message: The subject line, or an instance of
:class:`flask_mail.Message`.
:param to: The message recipient(s).
:param kwargs: Extra values to pass on to :class:`~flask_mail.Message`
"""
to = to or kwargs.pop('recipients', [])
return self.send(subject_or_message, to, **kwargs)
def init_app(self, app: FlaskUnchained):
app.extensions['mail'] = self