Source code for mailkit.core.smtp.config

from typing import List, Union, Optional
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict


[docs]class SmtpConfig(BaseSettings): host: str port: Optional[int] = None username: str password: str use_ssl: bool = True use_tls: bool = False timeout: int = 10 model_config = SettingsConfigDict( env_file='~/.mailkit.env', env_prefix='SMTP_', case_sensitive=False )
[docs] def save_config(self, env_file=None): env_file = env_file or self.model_config.get('env_file') prefix = self.model_config.get('env_prefix') with Path(env_file).expanduser().open('w') as f: for k, v in self.model_dump().items(): f.write(f'{prefix}{k.upper()}={v}\n')
if __name__ == '__main__': # s = SmtpConfig(host='smtp.gmail.com') # s.save_config('out.env') s = SmtpConfig(_env_file='out.env') print(s.model_dump())