Python · Django
Senden Sie Ihre erste E-Mail aus einer Django-View mit dem synchronen Client des Bird Python SDK. Drei Schritte: installieren, senden, ausführen.
1. SDK installieren
Codebeispiel
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myappErfordert Python 3.10+. Das Import-Paket ist bird.
2. Eine E-Mail senden
Exportieren Sie Ihren API-Schlüssel. Der SDK liest BIRD_API_KEY aus der Umgebung und leitet die Region (us1 oder eu1) aus dem bk_us1_-/bk_eu1_-Präfix ab, sodass Bird() keine Argumente benötigt:
Codebeispiel
export BIRD_API_KEY="bk_us1_..."Fügen Sie eine View in myapp/views.py hinzu. Erstellen Sie einen Bird beim Laden des Moduls und verwenden Sie ihn für alle Requests wieder: Er nutzt Connection-Pooling und kann sicher zwischen Threads geteilt werden.
Codebeispiel
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)Die CSRF-Ausnahme sorgt dafür, dass dieses lokale cURL-Beispiel ausführbar bleibt. Fügen Sie Authentifizierung und eine geeignete CSRF-Richtlinie hinzu, bevor Sie die Route freigeben.
Binden Sie sie in config/urls.py ein:
Codebeispiel
from django.urls import path
from myapp.views import send_email
urlpatterns = [path("send/", send_email)]from_ ist die Python-Schreibweise des from-Felds (from ist ein reserviertes Wort). onboarding@messagebird.dev ist der gemeinsame Onboarding-Absender von Bird (keine Domain-Verifizierung nötig) und delivered@messagebird.dev ist ein Sandbox-Empfänger, der immer zugestellt wird.
Der SDK wiederholt vorübergehende Fehler automatisch und verwendet bei jedem Versuch den Idempotenzschlüssel des Aufrufs erneut. Das verhindert, dass ein erneuter Versuch die Nachricht doppelt sendet.
3. Ausprobieren
Codebeispiel
python manage.py runserver
curl -X POST http://localhost:8000/send/Bird nimmt die Nachricht mit einem 202 an und stellt sie asynchron zu; Ihre View gibt die em_-ID und den Status zurück:
Codebeispiel
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Rufen Sie die Nachricht über ihre em_-ID mit client.email.get(...) ab und beobachten Sie, wie sich der Status von accepted zu delivered ändert.
Nächste Schritte
- Python-SDK-E-Mail-Referenz: alle Methoden und Optionen.
- Erste E-Mail senden: derselbe Ablauf mit curl und die vollständige Sandbox-Adressliste.
- Sende-Domains: eigene Domain für den Produktionsversand verifizieren.
- E-Mail-API-Referenz: das vollständige Request- und Response-Schema.
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenTesting email without spamming anyoneDie Funktion erkundenTest email deliveryDem Lernpfad folgenOperate messaging reliably
Übung ausprobieren und ein Implementierungs-Briefing erhalten