Email Configuration

Le module EmailConfigManager centralise la configuration pour l’envoi d’e-mails via SMTP, utilisée pour l’envoi des rapports.

Usage

EmailConfigManager est instancié par le ConfigManager central. L’accès se fait via ConfigManager.email.

Fonctionnalités

  • Configuration SMTP : gère les paramètres du serveur SMTP, le port, l’identifiant et le mot de passe.

  • Gestion des destinataires : prend en charge un ou plusieurs destinataires en parsant une chaîne de caractères séparée par des virgules depuis la variable d’environnement MAIL_RECEPTEUR.

  • Structure de données : utilise le dataclass EmailConfig pour stocker les paramètres de manière propre et typée.

  • Validation : la méthode validate assure que les paramètres essentiels sont présents et valides. Elle vérifie le format des adresses e-mail (émetteur et destinataires) et s’assure que le port SMTP est dans une plage valide.

Modules

class src.smart_watch.config.email_config.EmailConfig(emetteur: str, recepteurs: List[str], smtp_server: str, smtp_port: int, smtp_password: str, smtp_login: str | None = None)[source]

Bases : object

Dataclasse pour stocker les paramètres de configuration email.

emetteur

adresse email de l’expéditeur.

Type:

str

recepteurs

liste des adresses email des destinataires.

Type:

List[str]

smtp_server

adresse du serveur SMTP.

Type:

str

smtp_port

port du serveur SMTP.

Type:

int

smtp_password

mot de passe SMTP pour l’authentification.

Type:

str

smtp_login

identifiant de connexion SMTP. Par défaut à None.

Type:

Optional[str]

emetteur: str
recepteurs: List[str]
smtp_server: str
smtp_port: int
smtp_password: str
smtp_login: str | None = None
__init__(emetteur: str, recepteurs: List[str], smtp_server: str, smtp_port: int, smtp_password: str, smtp_login: str | None = None) None
class src.smart_watch.config.email_config.EmailConfigManager(env_file: Path | None = None)[source]

Bases : BaseConfig

Gère le chargement et la validation de la configuration email depuis les variables d’environnement.

Cette classe hérite de BaseConfig et fournit des méthodes pour initialiser et valider les paramètres email, en s’assurant que tous les paramètres requis sont présents et correctement formatés.

config

objet de configuration email chargé.

Type:

EmailConfig

__init__(env_file: Path | None = None) None[source]

Initialise le gestionnaire de configuration email.

Paramètres:

env_file (Optional[Path], optional) – chemin vers le fichier d’environnement.

_init_email_config() EmailConfig[source]

Initialise la configuration email à partir des variables d’environnement.

Renvoie:

un objet EmailConfig si toutes les variables requises sont trouvées.

Type renvoyé:

EmailConfig

Lève:

ValueError – si une variable d’environnement requise est manquante ou invalide.

validate() bool[source]

Valide la configuration email. Lève une exception si la configuration est absente ou incomplète.

_load_environment()

Charge les variables d’environnement depuis le fichier .env.

Réinitialise d’abord les variables (sauf en environnement conteneurisé) puis charge celles du fichier .env. Si le fichier n’existe pas, utilise les variables système existantes.

_reset_environment()

Réinitialise les variables d’environnement du fichier .env.

Supprime les variables chargées depuis le fichier .env pour éviter les conflits avec les variables système ou conteneurisées. Ne s’exécute pas dans un environnement conteneurisé.

get_env_var(key: str, default: str | None = None, required: bool = False) str | None

Récupère une variable d’environnement de manière sécurisée.

Paramètres:
  • key (str) – la clé de la variable d’environnement à récupérer.

  • default (Optional[str], optional) – la valeur par défaut si la variable n’est pas trouvée.

  • required (bool) – si True, lèvera une exception si la valeur est manquante.

Renvoie:

la valeur de la variable d’environnement, ou None.

Type renvoyé:

Optional[str]

Lève:

ValueError – si la variable est requise mais non définie.