Python · Django
Envoyez votre premier e-mail depuis une vue Django avec le client synchrone du Bird Python SDK. Trois étapes : installer, envoyer, exécuter.
1. Installer le SDK
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myappNécessite Python 3.10+. Le paquet à importer est bird.
2. Envoyer un e-mail
Exportez votre clé API. Le SDK lit BIRD_API_KEY depuis l'environnement et déduit la région (us1 ou eu1) à partir du préfixe bk_us1_ / bk_eu1_, donc Bird() ne nécessite aucun argument :
export BIRD_API_KEY="bk_us1_..."Ajoutez une vue dans myapp/views.py. Construisez un seul Bird au chargement du module et réutilisez-le pour toutes les requêtes : il mutualise les connexions et peut être partagé entre les threads.
from bird import Bird, APIError
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST
client = Bird()
@csrf_exempt
@require_POST
def send_email(request):
try:
message = client.email.send(
from_="onboarding@messagebird.dev",
to=["delivered@messagebird.dev"],
subject="Hello from Bird",
html="<p>My first Bird email.</p>",
)
except APIError as err:
return JsonResponse({"error": str(err)}, status=502)
return JsonResponse({"id": message.id, "status": message.status}, status=202)L'exemption CSRF permet d'exécuter cet exemple cURL en local. Ajoutez l'authentification et une politique CSRF appropriée avant d'exposer la route.
Reliez le tout dans config/urls.py :
from django.urls import path
from myapp.views import send_email
urlpatterns = [path("send/", send_email)]from_ est la forme Python du champ from (from est un mot réservé). onboarding@messagebird.dev est l'expéditeur d'intégration partagé de Bird (aucune vérification de domaine nécessaire) et delivered@messagebird.dev est un destinataire sandbox qui aboutit toujours.
Le SDK réessaye automatiquement les erreurs transitoires et réutilise la clé d'idempotence de l'appel à chaque tentative. Cela empêche une nouvelle tentative d'envoyer le message deux fois.
3. Tester
python manage.py runserver
curl -X POST http://localhost:8000/send/Bird accepte le message avec un 202 et le distribue de manière asynchrone ; votre vue renvoie l'ID em_ et le statut :
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Récupérez le message par son ID em_ avec client.email.get(...) et observez le statut passer de accepted à delivered.
Étapes suivantes
- Référence e-mail Python SDK : toutes les méthodes et options.
- Envoyer votre premier e-mail : le même flux avec curl et la liste complète des adresses sandbox.
- Domaines d'envoi : vérifiez votre propre domaine pour l'envoi en production.
- Référence API e-mail : le schéma complet de requête et de réponse.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.