Guide : Connecter un compte Gmail
Ce guide vous explique comment configurer Google Cloud Console pour obtenir les credentials OAuth nécessaires, puis connecter un compte Gmail à votre application SendAs.me.
Prérequis
- Un compte Google (Google Workspace ou Gmail personnel)
- Accès à Google Cloud Console
- Une application SendAs.me déjà créée avec le plugin
gmailactivé
Partie 1 : Configurer Google Cloud Console
Étape 1 : Créer un projet Google Cloud
- Accédez à console.cloud.google.com
- Cliquez sur le sélecteur de projet en haut de la page
- Cliquez sur Nouveau projet
- Nommez votre projet (ex:
SendAs.me Integration) - Cliquez sur Créer
Étape 2 : Activer l'API Gmail
- Dans la barre de recherche, tapez Gmail API
- Cliquez sur Gmail API dans les résultats
- Cliquez sur Activer
Attendez que l'activation soit complète (quelques secondes).
Étape 3 : Configurer l'écran de consentement OAuth
L'écran de consentement est la page que vos utilisateurs verront lorsqu'ils autorisent l'accès.
-
Dans le menu gauche, allez dans APIs & Services → OAuth consent screen
-
Choisissez le type d'utilisateur :
- Interne : Si vous utilisez Google Workspace et que seuls les membres de votre organisation se connecteront
- Externe : Pour les autres cas (comptes Gmail personnels inclus)
-
Cliquez sur Créer
-
Remplissez les informations :
- Nom de l'application :
SendAs.me - E-mail d'assistance utilisateur : votre adresse e-mail
- Logo : optionnel
- Page d'accueil :
https://sendas.me - Politique de confidentialité :
https://sendas.me/privacy - Conditions d'utilisation :
https://sendas.me/terms - E-mails de contact du développeur : votre adresse e-mail
- Nom de l'application :
-
Cliquez sur Enregistrer et continuer
Étape 4 : Configurer les scopes
- Cliquez sur Ajouter ou supprimer des champs d'application
- Recherchez et ajoutez :
https://www.googleapis.com/auth/gmail.send(Envoyer des e-mails)https://www.googleapis.com/auth/userinfo.email(Voir l'adresse e-mail)
- Cliquez sur Mettre à jour
- Cliquez sur Enregistrer et continuer
Si votre application est en type "Externe", elle démarre en mode "Test". En mode test, seuls les utilisateurs ajoutés à la liste des testeurs peuvent se connecter. Pour une utilisation en production, vous devrez soumettre l'application pour vérification par Google.
Étape 5 : Ajouter des utilisateurs de test (mode Externe uniquement)
Si vous avez choisi Externe :
- Sous Utilisateurs de test, cliquez sur + Ajouter des utilisateurs
- Entrez les adresses Gmail des comptes qui pourront se connecter
- Cliquez sur Ajouter
Étape 6 : Créer les identifiants OAuth 2.0
-
Dans le menu gauche, allez dans APIs & Services → Identifiants
-
Cliquez sur + Créer des identifiants
-
Choisissez ID client OAuth
-
Type d'application : Application Web
-
Nom :
SendAs.me Gateway -
Sous Origines JavaScript autorisées, ajoutez :
https://app.sendas.me -
Sous URI de redirection autorisés, ajoutez :
https://api.sendas.me/oauth/callback/gmailURI exactL'URI de redirection doit correspondre exactement à la valeur configurée dans SendAs.me (variable
API_URL+/oauth/callback/gmail). Toute différence (slash final, HTTP vs HTTPS, etc.) causera une erreur. -
Cliquez sur Créer
Étape 7 : Copier les identifiants
Une pop-up affiche vos identifiants :
- Client ID :
123456789-abcdefghijklmnop.apps.googleusercontent.com - Client Secret :
GOCSPX-VotreCleSecreteGoogle
Copiez ces valeurs et configurez-les dans votre .env :
GOOGLE_CLIENT_ID=123456789-abcdefghijklmnop.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-VotreCleSecreteGoogle
Redémarrez le service API :
docker compose restart api
Partie 2 : Connecter un compte Gmail dans le portail
Étape 1 : Accéder à votre application
- Connectez-vous sur
https://app.sendas.me - Allez dans Applications
- Cliquez sur votre application (assurez-vous que le plugin
gmailest activé)
Étape 2 : Lancer la connexion OAuth
- Dans la section Comptes OAuth connectés, cliquez sur Connecter un compte Gmail
- Vous êtes redirigé vers la page d'authentification Google
Étape 3 : S'authentifier avec Google
- Sélectionnez ou entrez le compte Gmail que vous souhaitez connecter
- Si l'écran de consentement apparaît avec un avertissement "Application non vérifiée", cliquez sur Continuer (ceci est normal pour les applications en mode test)
- Cochez les permissions demandées :
- ✅ Voir votre adresse e-mail Google
- ✅ Envoyer des e-mails en votre nom
- Cliquez sur Continuer
Étape 4 : Vérifier la connexion
Après la redirection vers le portail, vous devriez voir :
- L'adresse Gmail connectée dans la section Comptes OAuth
- Statut : Connecté (badge vert)
Vous recevrez également un webhook oauth_connected si vous en avez configuré un.
Vérification de l'envoi
Envoyez un e-mail test :
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Test de connexion Gmail via SendAs.me")
msg["Subject"] = "Test Gmail"
msg["From"] = "votre-compte@gmail.com"
msg["To"] = "destinataire@example.com"
with smtplib.SMTP("smtp.sendas.me", 587) as s:
s.starttls()
s.login("app_pk_VotrePushableKey", "votre_smtp_password")
s.sendmail(msg["From"], [msg["To"]], msg.as_string())
print("Envoyé !")
Passage en production (type Externe)
Si votre application Google est de type Externe, vous devrez la soumettre à la vérification Google pour lever la restriction des utilisateurs de test.
- Allez dans OAuth consent screen → Publier l'application
- Soumettez pour vérification si les scopes le nécessitent (gmail.send est un scope sensible)
- La vérification peut prendre plusieurs semaines
Si tous vos utilisateurs appartiennent au même domaine Google Workspace, utilisez le type Interne pour éviter la vérification Google. L'accès est alors limité aux utilisateurs de votre organisation.
Résolution de problèmes
Erreur "redirect_uri_mismatch"
L'URI de redirection dans Google Cloud Console ne correspond pas à celle de SendAs.me. Vérifiez que vous avez ajouté exactement :
https://api.sendas.me/oauth/callback/gmail
Erreur "access_denied"
L'utilisateur a refusé les permissions, ou le compte n'est pas dans la liste des testeurs (mode External). Ajoutez l'utilisateur dans la section Test users de Google Cloud Console.
Token expiré après connexion
Si les tokens semblent expirer immédiatement, vérifiez que access_type=offline est bien dans l'URL de consentement (géré automatiquement par SendAs.me). Assurez-vous également que prompt=consent est présent pour forcer l'émission d'un refresh token.