#Fully Vibe coded :p
Fonction Lambda AWS pour analyser les emails de réponses aux candidatures et générer un rapport des candidatures retenues.
- Connexion à Outlook.com via IMAP
- Analyse des emails des dernières 24 heures
- Identification des réponses à des candidatures
- Détection des candidatures retenues (via analyse de mots-clés)
- Génération et envoi d'un rapport par email
mailAnalyzer/
├── index.js # Fonction Lambda principale
├── package.json # Dépendances Node.js
├── Makefile # Automatisation du déploiement
└── README.md # Documentation
make installou
npm installCette solution utilise Microsoft Graph API avec OAuth2, ce qui est plus simple et plus fiable que IMAP.
Avant de déployer, vous devez :
- Créer une application dans Azure AD (voir
OAUTH_SETUP.mdpour les détails) - Obtenir un refresh token (une seule fois) en utilisant le script
get-refresh-token.js
Consultez le fichier OAUTH_SETUP.md pour les instructions complètes de configuration OAuth2.
Configurez ces variables dans la console AWS Lambda > Configuration > Variables d'environnement :
EMAIL: Adresse email Outlook/Hotmail (ex:monmail@hotmail.com)MICROSOFT_CLIENT_ID: ID client de votre application Azure ADMICROSOFT_CLIENT_SECRET: Secret client de votre application Azure ADMICROSOFT_TENANT_ID: ID tenant (utilisezcommonpour les comptes personnels)MICROSOFT_REFRESH_TOKEN: Refresh token OAuth2 obtenu via le scriptPERPLEXITY_API_KEY: Clé API Perplexity pour l'analyse intelligente des emails (optionnel, valeur par défaut incluse)RECIPIENT_EMAIL: Adresse email pour recevoir le rapport (optionnel, utiliseEMAILpar défaut)
- Runtime : Node.js 18.x ou 20.x
- Timeout : 5 minutes (ajustable selon le volume d'emails)
- Mémoire : 512 MB (ajustable)
- Région : eu-west-3
make zipmake deployNote : Assurez-vous d'avoir configuré AWS CLI avec les bonnes credentials :
aws configuremake install: Installer les dépendances npmmake zip: Créer le package ZIP pour Lambdamake deploy: Déployer vers AWS Lambda (mailAnalyzer dans eu-west-3)make clean: Nettoyer les fichiers temporairesmake deep-clean: Nettoyer complètement (inclut node_modules)make help: Afficher l'aide
La fonction identifie les réponses de candidature en cherchant ces mots-clés dans le sujet et le corps :
- candidature
- poste
- cv
- candidat
- entretien
- recrutement
- application
- candidature pour
Pour obtenir un refresh token OAuth2 :
- Suivez les instructions dans
OAUTH_SETUP.mdpour créer une application Azure AD - Remplacez
CLIENT_IDetCLIENT_SECRETdansget-refresh-token.js - Exécutez le script :
npm run get-token
- Ouvrez l'URL affichée dans votre navigateur
- Connectez-vous et autorisez l'application
- Copiez le refresh token affiché et ajoutez-le dans les variables d'environnement Lambda
Vous devez d'abord obtenir un refresh token en suivant les étapes ci-dessus.
Si vous obtenez une erreur "LOGIN failed", suivez ces étapes dans l'ordre :
Selon la documentation Microsoft, l'accès IMAP est désactivé par défaut et doit être activé manuellement :
- Allez sur https://outlook.live.com/mail/
- Cliquez sur l'icône Paramètres (⚙️) en haut à droite
- Sélectionnez "Voir tous les paramètres Outlook"
- Allez dans "Courrier" > "Transfert et POP/IMAP"
- Sous "POP et IMAP", basculez le curseur "Autoriser les appareils et les applications à utiliser IMAP" sur ACTIVÉ
- Sélectionnez "Enregistrer"
Si l'authentification à deux facteurs est activée sur votre compte Microsoft, vous DEVEZ utiliser un mot de passe d'application au lieu de votre mot de passe normal :
- Allez sur https://account.microsoft.com/security
- Assurez-vous que l'authentification à deux facteurs est activée
- Cliquez sur "Mots de passe d'application" ou "App passwords"
- Créez un nouveau mot de passe d'application (vous pouvez le nommer "Lambda Mail Analyzer")
- Copiez le mot de passe généré (il ne sera affiché qu'une seule fois)
- Utilisez ce mot de passe dans la variable d'environnement Lambda
PASSWORD
Dans la console AWS Lambda, vérifiez que :
EMAIL: Contient votre adresse email complète (ex:theo.bogdan@hotmail.com)PASSWORD: Contient le mot de passe d'application (si 2FA est activé) ou votre mot de passe normal- Aucun espace avant/après les valeurs
- Les valeurs sont bien sauvegardées
Parfois, Microsoft bloque la connexion IMAP par sécurité. Si la connexion échoue :
- Allez sur https://account.live.com/activity
- Connectez-vous avec votre compte
- Dans "Activité récente", recherchez l'événement "Type de session" correspondant à l'heure de la tentative de connexion
- Cliquez sur cet événement
- Cliquez sur "C'était moi" pour autoriser la connexion IMAP
- Réessayez la connexion
Assurez-vous que le code utilise bien :
- Serveur IMAP :
outlook.office365.com(pasimap-mail.outlook.com) - Port : 993
- Chiffrement : SSL/TLS
Si vous ne pouvez pas utiliser un mot de passe d'application, vous pouvez temporairement désactiver l'authentification à deux facteurs, mais ce n'est pas recommandé pour des raisons de sécurité.
Si la fonction timeout, augmentez la valeur dans la configuration Lambda ou réduisez la période d'analyse.