Un script doit lire automatiquement un e-mail de code de vérification. Vous entrez rapidement votre identifiant et votre mot de passe dans un client IMAP, et vous obtenez une erreur de connexion. Le problème ne vient pas de l'identifiant ou du mot de passe, mais du mauvais mode d'accès choisi. Un compte Gmail peut être "utilisé" de plusieurs manières : connexion web, IMAP/SMTP, API Gmail. Ces trois voies ont des exigences et des capacités différentes. Si vous choisissez mal, ce n'est pas le compte qui est cassé, c'est le mode d'accès qui ne correspond pas.
Quels sont ces trois modes d'accès ?
| Mode | Nature | Ce que le compte doit avoir |
| Connexion web | Ouvrir gmail.com dans un navigateur, suivre le processus de connexion humain normal | Mot de passe + 2FA (si activée), peut déclencher un code de vérification / une détection de connexion anormale |
| IMAP/SMTP | Un client de messagerie (Outlook, Thunderbird, bibliothèque de script) utilise les protocoles de messagerie pour envoyer et recevoir directement | Doit d'abord activer la 2FA, puis générer un "Mot de passe d'application" dédié, et utiliser ce mot de passe d'application pour se connecter, et non le mot de passe du compte lui-même |
| API Gmail | Interface de programmation officielle de Google, obtient un jeton d'accès via OAuth2, le programme utilise le jeton pour appeler l'interface et lire/écrire des e-mails | Nécessite de créer un projet Google Cloud, de configurer un client OAuth, et de passer par un processus de consentement d'autorisation pour obtenir un token |
Connexion web : la plus intuitive, mais pas adaptée à l'automatisation
Pour une opération manuelle, pas de problème. Mais un script qui simule une connexion web se heurtera fréquemment à des codes de vérification, des alertes de connexion anormale, voire une vérification par téléphone. Google a son propre système de contrôle des risques pour les connexions qui "semblent automatisées". Ce n'est pas un problème de compte, c'est une incompatibilité entre la méthode de connexion et l'usage prévu.
IMAP/SMTP : idéal pour les clients de messagerie et les scripts légers
C'est la méthode la plus proche de "l'envoi et la réception d'e-mails traditionnels". La grande majorité des clients de messagerie et des bibliothèques Python/Node pour les e-mails la supportent. Le point clé est le suivant : le compte doit d'abord avoir la 2FA activée, puis utiliser le "Mot de passe d'application" généré par la 2FA pour se connecter à IMAP. Vous ne pouvez pas utiliser directement le mot de passe de connexion du compte lui-même. Actuellement, Google exige généralement cette étape pour les comptes grand public. Essayer de se connecter à IMAP directement avec l'identifiant et le mot de passe du compte sera très probablement refusé.
Si vous voyez le champ "Mot de passe d'application" dans la fiche du compte, cela signifie que le mot de passe d'application a déjà été préparé séparément pour ce compte. Vous pouvez utiliser ce mot de passe pour vous connecter à IMAP directement, sans avoir à refaire le processus d'activation de la 2FA et de génération du mot de passe d'application.
API Gmail : adaptée à une intégration programmatique formelle
L'API Gmail utilise l'autorisation OAuth2. Le programme obtient un jeton d'accès avec une portée (scope) définie, et non le mot de passe du compte lui-même. L'avantage est que les autorisations peuvent être contrôlées avec précision (par exemple, lecture seule sans modification), et le jeton peut être révoqué indépendamment sans affecter le mot de passe du compte. C'est idéal pour les scénarios nécessitant une exécution stable à long terme et une gestion fine des autorisations. L'inconvénient est un coût de mise en place plus élevé : il faut enregistrer une application sur Google Cloud, configurer des identifiants, ce n'est pas utilisable directement avec un simple compte.
Comment choisir entre les trois ?
- Pour une connexion manuelle occasionnelle : La connexion web suffit, pas besoin de se compliquer la vie.
- Pour un script qui doit lire des codes de vérification/envoyer des e-mails automatiquement et régulièrement, en privilégiant la simplicité : IMAP/SMTP + Mot de passe d'application. Si la fiche du compte a ce champ, c'est directement utilisable.
- Pour une intégration dans un produit final, une exécution à long terme, et un besoin de contrôle fin des autorisations : API Gmail. La configuration initiale est plus lourde, mais la solution est plus stable par la suite.
Pièges courants
- Erreur en essayant de se connecter à IMAP avec l'identifiant et le mot de passe. Le problème est probablement que la 2FA n'est pas activée sur le compte ou qu'aucun mot de passe d'application n'a été généré. Connectez-vous une fois sur le web pour activer la 2FA, générez un mot de passe d'application, puis réessayez.
- Un script simulant une connexion web se voit demander une vérification anormale. Passez à IMAP ou à l'API Gmail. N'essayez pas de forcer la connexion web avec un script.
- Le token de l'API Gmail a expiré ou ses autorisations sont insuffisantes. Vérifiez si la portée (scope) sélectionnée lors de la demande inclut bien l'interface que vous souhaitez appeler. Si le token expire, vous devez utiliser le refresh token pour en obtenir un nouveau. Ce n'est pas un problème avec le compte lui-même.
Limites à connaître avant d'acheter
- La possibilité d'utiliser ces trois modes d'accès dépend non seulement des champs du compte lui-même, mais aussi des politiques de Google à un moment donné. Rien ne garantit qu'elles resteront inchangées à long terme.
- Les mots de passe d'application et les jetons OAuth peuvent devenir invalides suite à un changement de mot de passe ou à un contrôle de sécurité du compte. Ils devront alors être régénérés.
- Le mode d'accès supporté par un compte spécifique est décrit sur la page du produit.
Questions fréquentes
Puis-je activer moi-même la fonctionnalité sur un compte qui n'a pas le champ "Mot de passe d'application" ? Oui, à condition que le compte puisse se connecter normalement sur le web et activer la 2FA. Une fois la 2FA activée, vous pouvez générer un mot de passe d'application dans les paramètres de sécurité du compte. C'est le même mécanisme que le format 2FA mentionné dans l'article sur la relation entre un compte Google et un compte Gmail.
Puis-je utiliser IMAP et l'API Gmail en même temps sur un même compte ? Oui, les deux ne sont pas en conflit. Ils utilisent simplement des identifiants de connexion différents (mot de passe d'application vs jeton OAuth) et ne s'affectent pas mutuellement.
Pourquoi les autorisations obtenues via l'API Gmail doivent-elles être ré-autorisées après un certain temps ? Les jetons OAuth ont une durée de validité. Le processus normal consiste à utiliser le refresh token associé pour obtenir silencieusement un nouveau jeton d'accès. Si le refresh token expire également (par exemple, après un changement d'identifiant/mot de passe du compte), alors l'utilisateur doit repasser par l'écran de consentement d'autorisation.