Source code for pymailai.config

"""Configuration handling for PyMailAI."""

from dataclasses import dataclass


[docs] @dataclass class EmailConfig: """Email configuration settings.""" imap_server: str smtp_server: str email: str password: str imap_port: int = 993 smtp_port: int = 587 folder: str = "INBOX" check_interval: int = 60 # seconds max_retries: int = 3 timeout: int = 30 # seconds tls: bool = True
[docs] def validate(self) -> None: """Validate configuration settings.""" from email_validator import EmailNotValidError, validate_email try: validate_email(self.email) except EmailNotValidError as e: raise ValueError(f"Invalid email address: {e}") if not self.password: raise ValueError("Password cannot be empty") if not self.imap_server or not self.smtp_server: raise ValueError("IMAP and SMTP servers must be specified")