Sign inGet Started

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 myapp
Erfordert 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