Aller au contenu principal

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 gmail activé

Partie 1 : Configurer Google Cloud Console

Étape 1 : Créer un projet Google Cloud

  1. Accédez à console.cloud.google.com
  2. Cliquez sur le sélecteur de projet en haut de la page
  3. Cliquez sur Nouveau projet
  4. Nommez votre projet (ex: SendAs.me Integration)
  5. Cliquez sur Créer

Étape 2 : Activer l'API Gmail

  1. Dans la barre de recherche, tapez Gmail API
  2. Cliquez sur Gmail API dans les résultats
  3. 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.

  1. Dans le menu gauche, allez dans APIs & ServicesOAuth consent screen

  2. 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)
  3. Cliquez sur Créer

  4. 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
  5. Cliquez sur Enregistrer et continuer

Étape 4 : Configurer les scopes

  1. Cliquez sur Ajouter ou supprimer des champs d'application
  2. 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)
  3. Cliquez sur Mettre à jour
  4. Cliquez sur Enregistrer et continuer
Application en mode "Test"

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 :

  1. Sous Utilisateurs de test, cliquez sur + Ajouter des utilisateurs
  2. Entrez les adresses Gmail des comptes qui pourront se connecter
  3. Cliquez sur Ajouter

Étape 6 : Créer les identifiants OAuth 2.0

  1. Dans le menu gauche, allez dans APIs & ServicesIdentifiants

  2. Cliquez sur + Créer des identifiants

  3. Choisissez ID client OAuth

  4. Type d'application : Application Web

  5. Nom : SendAs.me Gateway

  6. Sous Origines JavaScript autorisées, ajoutez :

    https://app.sendas.me
  7. Sous URI de redirection autorisés, ajoutez :

    https://api.sendas.me/oauth/callback/gmail
    URI exact

    L'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.

  8. 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

  1. Connectez-vous sur https://app.sendas.me
  2. Allez dans Applications
  3. Cliquez sur votre application (assurez-vous que le plugin gmail est activé)

Étape 2 : Lancer la connexion OAuth

  1. Dans la section Comptes OAuth connectés, cliquez sur Connecter un compte Gmail
  2. Vous êtes redirigé vers la page d'authentification Google

Étape 3 : S'authentifier avec Google

  1. Sélectionnez ou entrez le compte Gmail que vous souhaitez connecter
  2. 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)
  3. Cochez les permissions demandées :
    • ✅ Voir votre adresse e-mail Google
    • ✅ Envoyer des e-mails en votre nom
  4. 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.

  1. Allez dans OAuth consent screenPublier l'application
  2. Soumettez pour vérification si les scopes le nécessitent (gmail.send est un scope sensible)
  3. La vérification peut prendre plusieurs semaines
Contournement avec Google Workspace

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.