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
Codebeispiel
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:
Codebeispiel
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.
Codebeispiel
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
Codebeispiel
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:
Codebeispiel
{
"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. 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