Envoi d’Email

Le module EnvoyerMail gère l’envoi d’emails via un serveur SMTP.

Usage

Ce module est utilisé par NotificationManager pour envoyer les rapports d’analyse par email.

Fonctionnalités

  • Envoi d’emails au format HTML.

  • Prise en charge des pièces jointes multiples.

  • Support des modes de sécurité SSL/TLS et STARTTLS.

  • Configuration via le ConfigManager.

Modules

class src.smart_watch.core.EnvoyerMail.EmailSender(config: ConfigManager)[source]

Bases : object

Classe pour envoyer des emails via SMTP.

__init__(config: ConfigManager)[source]

Initialise l’EmailSender avec la configuration.

Paramètres:

config (ConfigManager) – Instance de ConfigManager contenant les paramètres de configuration.

config

Configuration email extraite de l’instance ConfigManager.

logger

Instance de logger pour cette classe.

max_retries

Nombre maximum de tentatives d’envoi.

Type:

int

retry_delay

Délai en secondes entre les tentatives.

Type:

int

Lève:

ValueError – Si la configuration email n’est pas valide.

send_email(subject: str, body: str, attachments: List[str] | None = None) None[source]

Envoie un email avec support pour pièces jointes multiples.

L’envoi se fait avec _send_ssl ou _send_starttls en fonction du port configuré :

  • Port 465 : SSL/TLS

  • Port 587 : STARTTLS

Paramètres:
  • subject (str) – Sujet de l’email.

  • body (str) – Corps de l’email (HTML).

  • attachments (Optional[List[str]]) – Liste des chemins vers les fichiers à joindre.

_send_ssl(email_string: str) None[source]

Envoie l’email via une connexion SSL/TLS.

Utilise le port 465 pour la connexion SSL.

Paramètres:

email_string (str) – Contenu de l’email à envoyer.

Avertissement

Cette méthode utilise une connexion SSL/TLS non vérifiée pour contourner les erreurs de certificat SSL. Ceci est INSECURISÉ.

_send_starttls(email_string: str) None[source]

Envoie l’email via une connexion STARTTLS.

Utilise le port 587 pour STARTTLS.

Paramètres:

email_string (str) – Contenu de l’email à envoyer.