Flux complet éditeur
Ce guide vous accompagne de bout en bout : de la création de votre application dans le portail jusqu'à l'envoi d'un email depuis l'adresse de votre utilisateur final.
Vue d'ensemble
1. Créer l'application dans le portail SendAs.me
↓
2. Récupérer les identifiants SMTP de l'application
↓
3. Générer un lien de connexion depuis votre backend
↓
4. L'utilisateur clique et autorise l'accès à son compte
↓
5. Configurer l'envoi SMTP dans votre application
↓
6. Envoyer un email — il arrive depuis l'adresse de l'utilisateur
Étape 1 : Créer l'application dans le portail
- Connectez-vous sur app.sendas.me
- Accédez à Applications → Nouvelle application
- Remplissez le formulaire :
- Nom :
Mon Application(affiché sur la page d'autorisation que verront vos utilisateurs) - Logo URL (optionnel) : affiché sur la même page
- Fournisseurs activés : Gmail, Office 365, ou les deux selon votre besoin
- Nom :
- Cliquez sur Créer
Votre application obtient un app_id (ex : monapp) et une pushable_key (ex : pk_AbCdEfGhIjKlMnOpQrStUvWx).
Étape 2 : Récupérer les identifiants SMTP
Sur la page de votre application, section Identifiants SMTP :
| Paramètre | Valeur |
|---|---|
| Hôte | smtp.sendas.me |
| Port | 587 (STARTTLS) |
| Nom d'utilisateur | monapp (app_id) |
| Mot de passe | sek_8xK2mP9nQrTvWyZa (send_key) |
Le mot de passe SMTP est affiché une seule fois. Conservez-le dans votre gestionnaire de secrets. En cas de perte, régénérez-en un nouveau — l'ancien est immédiatement invalidé.
Ces identifiants sont ceux de votre application. Ils sont communs à tous vos utilisateurs et ne changent pas d'un utilisateur à l'autre.
Étape 3 : Générer un lien de connexion
Pour qu'un utilisateur connecte son compte email, votre backend appelle POST /connect-sessions pour obtenir un lien éphémère. Ce lien est valable 15 minutes et à usage unique — comme une session Stripe Checkout.
import httpx
API_SECRET = "sk_..." # votre api_secret (portail → section API)
APP_PK = "pk_AbCdEfGh..." # pushable_key de votre application
def generate_connect_link(user_id: str, callback_url: str) -> str:
resp = httpx.post(
"https://api.sendas.me/connect-sessions",
headers={"X-Api-Secret": API_SECRET},
json={
"pk": APP_PK,
"plugin": "gmail", # ou "office365"
"user_id": user_id,
"callback_url": callback_url,
},
)
resp.raise_for_status()
return resp.json()["url"]
# Dans votre handler HTTP :
link = generate_connect_link(
user_id="usr_123",
callback_url="https://votre-app.com/settings/email/callback"
)
# Redirigez l'utilisateur vers `link` ou affichez-le sous forme de bouton
Réponse de l'API :
{
"url": "https://connect.sendas.me/?session=gX9k2mP7nQrT...",
"expires_at": "2026-04-11T14:35:00Z"
}
Appelez POST /connect-sessions au moment où l'utilisateur clique sur "Connecter mon email" dans votre interface. Ne stockez pas les liens — ils expirent en 15 minutes.
Étape 4 : L'utilisateur clique et autorise
Quand l'utilisateur ouvre le lien :
- S'il n'y avait qu'un seul plugin (
plugin: "gmail"), il est redirigé directement vers Google - Sinon, il voit une page de sélection Gmail / Office 365
- Il s'authentifie avec son compte email habituel
- Il voit une page de consentement indiquant que votre application souhaite envoyer des emails en son nom
- Il accepte
- Il est redirigé vers votre
callback_url:
https://votre-app.com/settings/email/callback?status=connected&email=jean.dupont@gmail.com&plugin=gmail
Côté SendAs.me :
- Le compte est lié à votre application
- Vous recevez un webhook
user.connectedsi vous avez configuré un endpoint - Le compte apparaît dans la section Utilisateurs connectés de votre application dans le portail
- Le lien est marqué comme utilisé et ne peut plus être réutilisé
Étape 5 : Configurer l'envoi SMTP dans votre application
Utilisez les identifiants de l'étape 2. L'adresse From: doit correspondre à l'adresse du compte OAuth connecté.
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
SMTP_HOST = "smtp.sendas.me"
SMTP_PORT = 587
SMTP_USERNAME = "monapp" # app_id
SMTP_PASSWORD = "sek_8xK2mP9nQrTvWyZa" # send_key
def send_email(user_email: str, recipient: str, subject: str, body_html: str):
msg = MIMEMultipart("alternative")
msg["Subject"] = subject
msg["From"] = user_email # adresse du compte OAuth connecté
msg["To"] = recipient
msg.attach(MIMEText(body_html, "html"))
with smtplib.SMTP(SMTP_HOST, SMTP_PORT) as server:
server.starttls()
server.login(SMTP_USERNAME, SMTP_PASSWORD)
server.sendmail(user_email, [recipient], msg.as_string())
# Utilisation :
send_email(
user_email="jean.dupont@gmail.com",
recipient="client@exemple.fr",
subject="Votre facture #2026-0042",
body_html="<p>Veuillez trouver ci-joint votre facture.</p>"
)
Ou via l'API REST si vous préférez ne pas gérer SMTP :
resp = httpx.post(
"https://api.sendas.me/send",
headers={"X-Send-Key": "sek_8xK2mP9nQrTvWyZa"},
json={
"pk": "pk_AbCdEfGh...",
"to": "client@exemple.fr",
"subject": "Votre facture #2026-0042",
"html": "<p>Veuillez trouver ci-joint votre facture.</p>",
"user_id": "usr_123", # si mode multiuser
},
)
Étape 6 : Vérifier l'envoi
Après l'envoi :
-
Chez le destinataire : l'email arrive depuis l'adresse de l'utilisateur (
jean.dupont@gmail.com), pas depuis une adresse SendAs.me. -
Dans le portail : application → Journaux
| Champ | Valeur |
|---|---|
| Statut | email_sent |
| De | jean.dupont@gmail.com |
| À | client@exemple.fr |
| Sujet | Votre facture #2026-0042 |
| Plugin | gmail |
- Dans Gmail de l'utilisateur : l'email apparaît dans sa boîte d'envoi.
Prochaines étapes
- Configurer des webhooks pour être notifié de chaque envoi ou anomalie
- Connecter Office 365 pour les utilisateurs Microsoft
- Référence API complète