Python · FastAPI
Senden Sie Ihre erste E-Mail von einem FastAPI-Endpunkt mit dem Async-Client des Bird Python SDK. Drei Schritte: installieren, senden, ausführen.
1. SDK installieren
python -m pip install messagebird-sdk "fastapi[standard]"Erfordert Python 3.10+. Das Import-Paket ist bird.
2. Eine E-Mail senden
Exportieren Sie Ihren API-Schlüssel. Das SDK liest BIRD_API_KEY aus der Umgebung und leitet die Region (us1 oder eu1) aus dem Präfix bk_us1_ / bk_eu1_ ab, sodass AsyncBird() keine Argumente benötigt:
export BIRD_API_KEY="bk_us1_..."Erstellen Sie main.py. Erzeugen Sie beim Start eine AsyncBird-Instanz und verwenden Sie sie für alle Requests: Sie bündelt Verbindungen und kann sicher über Tasks hinweg geteilt werden.
from bird import AsyncBird, APIError
from fastapi import FastAPI, HTTPException
app = FastAPI()
client = AsyncBird()
@app.post("/send", status_code=202)
async def send() -> dict[str, str]:
try:
message = await 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:
raise HTTPException(status_code=502, detail=str(err))
return {"id": message.id, "status": message.status}from_ ist die Python-Schreibweise des Felds from (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 fehlgeschlagene Anfragen bei vorübergehenden Fehlern automatisch und verwendet bei jedem Versuch denselben Idempotenz-Schlüssel. Das verhindert, dass ein erneuter Versuch die Nachricht doppelt sendet.
3. Ausprobieren
fastapi dev main.py
curl -X POST http://localhost:8000/sendBird nimmt die Nachricht mit einem 202 an und stellt sie asynchron zu; Ihr Endpunkt gibt die em_-ID und den Status zurück:
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Rufen Sie die Nachricht anhand ihrer em_-ID mit await client.email.get(...) ab und beobachten Sie, wie der Status von accepted zu delivered wechselt.
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.