Configuration du Traitement d'Emails¶
Description¶
Système pour récupérer automatiquement les références de documents depuis les emails de livraison et gérer leur expiration (45 jours).
Fonctionnalités Implémentées¶
✅ Script de traitement d'emails (app/scripts/email_processor.py)
- Connexion IMAP à la boîte mail
- Extraction des références ATT-XXXXXXXXX depuis les emails
- Calcul automatique des dates d'expiration (45 jours)
- Sauvegarde en base de données
✅ Modèle de base de données mis à jour (app/models/legacy_document.py)
- Ajout des champs delivery_date et expiration_date
- Migration Alembic créée
✅ Endpoint API (/souscriptions/process-emails)
- Déclenche le traitement des emails via API
- Paramètre limite configurable
- Retourne les statistiques de traitement
✅ Endpoint de listing (/souscriptions/legacy-documents)
- Liste les documents récupérés avec pagination
- Statistiques d'expiration (expirés, valides, sans expiration)
✅ Vérification mise à jour (/souscriptions/verify-document)
- Vérifie maintenant l'expiration des legacy documents
- Messages d'erreur détaillés pour documents expirés
Configuration Requise¶
Ajoutez ces variables d'environnement dans votre fichier .env :
1 2 3 4 5 6 7 8 9 10 | |
Utilisation¶
1. Via l'API (Recommandé)¶
1 2 3 4 5 6 7 8 | |
2. Via le script direct¶
1 2 3 4 5 | |
3. Test de configuration¶
1 2 | |
Migration de Base de Données¶
Appliquez la migration pour ajouter les nouvelles colonnes :
1 2 | |
Ou exécutez manuellement le SQL :
1 2 3 | |
Workflow Complet¶
- Première exécution : Récupère tous les emails existants
- Extraction : Trouve les références ATT-XXXXXXXXX dans les emails
- Dates :
- Date de livraison = date d'envoi de l'email
- Date d'expiration = date de livraison + 45 jours
- Sauvegarde : Stocke dans
legacy_documents - Vérification : L'endpoint
/verify-documentvérifie maintenant l'expiration
Formats de Référence Supportés¶
ATT-ABC123456(standard)att-xyz789012(converti en majuscules)- Références multiples dans un même email
API Endpoints Ajoutés¶
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /souscriptions/process-emails |
Traite les emails pour extraire les références |
| GET | /souscriptions/legacy-documents |
Liste les documents legacy avec pagination |
Réponse API Exemple¶
1 2 3 4 5 6 7 8 9 10 11 | |
Notes Importantes¶
- ⚠️ Première exécution : Peut prendre du temps selon le nombre d'emails
- 📧 Accès IMAP : Certains fournisseurs nécessitent l'activation de l'IMAP
- 🔐 Gmail : Utilisez un "mot de passe d'application" si 2FA activé
- 🕒 Expiration : 45 jours par défaut, configurable dans le code
- 📊 Monitoring : Surveillez les logs pour les erreurs de connexion
Dépannage¶
Erreur de connexion IMAP¶
- Vérifiez les paramètres IMAP_HOST, IMAP_PORT
- Activez l'accès IMAP dans votre compte email
- Utilisez un mot de passe d'application pour Gmail
Erreur de base de données¶
- Appliquez la migration Alembic
- Vérifiez les permissions de la base
Références non trouvées¶
- Vérifiez le format ATT-XXXXXXXXX dans vos emails
- Ajustez le pattern regex si nécessaire
Customisation¶
Modifiez app/scripts/email_processor.py pour :
- Changer le pattern de référence
- Ajuster la durée d'expiration
- Modifier les critères de recherche d'emails