devctrl.utility.email.SmtpSettings#
- class SmtpSettings(host: str = 'smtp.example.com', port: int = 587, username: str = '', password: str = '', use_tls: bool = True, sender_email: str = 'sender@example.com', sender_name: str | None = None)[source]#
Bases:
SettingsClassConfiguration for sending emails via SMTP.
Methods
Convenience wrapper for dataclasses.asdict(self)
Recursively construct a
SettingsClassfrom a dictionary.Attributes
- __annotations__ = {'host': <class 'str'>, 'password': <class 'str'>, 'port': <class 'int'>, 'sender_email': <class 'str'>, 'sender_name': typing.Optional[str], 'use_tls': <class 'bool'>, 'username': <class 'str'>}#
- __dataclass_fields__ = {'host': Field(name='host',type=<class 'str'>,default='smtp.example.com',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP server hostname or IP address.'}),kw_only=False,_field_type=_FIELD), 'password': Field(name='password',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP password for authentication.'}),kw_only=False,_field_type=_FIELD), 'port': Field(name='port',type=<class 'int'>,default=587,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP server port number.'}),kw_only=False,_field_type=_FIELD), 'sender_email': Field(name='sender_email',type=<class 'str'>,default='sender@example.com',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Email address used as the sender.'}),kw_only=False,_field_type=_FIELD), 'sender_name': Field(name='sender_name',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Optional sender name. If None, the email address will be used.'}),kw_only=False,_field_type=_FIELD), 'use_tls': Field(name='use_tls',type=<class 'bool'>,default=True,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Whether to use TLS for the connection.'}),kw_only=False,_field_type=_FIELD), 'username': Field(name='username',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP username for authentication.'}),kw_only=False,_field_type=_FIELD)}#
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)#
- __dict__ = mappingproxy({'__module__': 'devctrl.utility.email', '__firstlineno__': 11, '__annotations__': {'host': <class 'str'>, 'port': <class 'int'>, 'username': <class 'str'>, 'password': <class 'str'>, 'use_tls': <class 'bool'>, 'sender_email': <class 'str'>, 'sender_name': typing.Optional[str]}, '__doc__': 'Configuration for sending emails via SMTP.', 'host': 'smtp.example.com', 'port': 587, 'username': '', 'password': '', 'use_tls': True, 'sender_email': 'sender@example.com', 'sender_name': None, '__static_attributes__': (), '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'host': Field(name='host',type=<class 'str'>,default='smtp.example.com',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP server hostname or IP address.'}),kw_only=False,_field_type=_FIELD), 'port': Field(name='port',type=<class 'int'>,default=587,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP server port number.'}),kw_only=False,_field_type=_FIELD), 'username': Field(name='username',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP username for authentication.'}),kw_only=False,_field_type=_FIELD), 'password': Field(name='password',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'SMTP password for authentication.'}),kw_only=False,_field_type=_FIELD), 'use_tls': Field(name='use_tls',type=<class 'bool'>,default=True,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Whether to use TLS for the connection.'}),kw_only=False,_field_type=_FIELD), 'sender_email': Field(name='sender_email',type=<class 'str'>,default='sender@example.com',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Email address used as the sender.'}),kw_only=False,_field_type=_FIELD), 'sender_name': Field(name='sender_name',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Optional sender name. If None, the email address will be used.'}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function SmtpSettings.__init__>, '__repr__': <function SmtpSettings.__repr__>, '__eq__': <function SmtpSettings.__eq__>, '__match_args__': ('host', 'port', 'username', 'password', 'use_tls', 'sender_email', 'sender_name')})#
- __eq__(other)#
Return self==value.
- __firstlineno__ = 11#
- __hash__ = None#
- __init__(host: str = 'smtp.example.com', port: int = 587, username: str = '', password: str = '', use_tls: bool = True, sender_email: str = 'sender@example.com', sender_name: str | None = None) None#
- __match_args__ = ('host', 'port', 'username', 'password', 'use_tls', 'sender_email', 'sender_name')#
- __module__ = 'devctrl.utility.email'#
- __or__(other)#
Merge with another settings class or a dictionary.
- __replace__(**changes)#
- __repr__()#
Return repr(self).
- __static_attributes__ = ()#
- __weakref__#
list of weak references to the object
- as_dict() dict#
Convenience wrapper for dataclasses.asdict(self)
- classmethod from_dict(data: dict)#
Recursively construct a
SettingsClassfrom a dictionary.If the value of a field is another SettingsClass,
from_dict()will be called for that field as well. Handled are:SettingsClass
list[SettingsClass]
dict[<any>, SettingsClass]
all of the above as Optional (Union with
None)a Union with any handled types
- host: str = 'smtp.example.com'#
- classmethod load_yaml(yaml_path: str, loader=<class 'yaml.loader.Loader'>)#
- password: str = ''#
- port: int = 587#
- save_yaml(yaml_path: str)#
- sender_email: str = 'sender@example.com'#
- sender_name: str | None = None#
- use_tls: bool = True#
- username: str = ''#