Sign inGet Started

Python · Flask

Senden Sie Ihre erste E-Mail aus einer Flask-Route mit dem synchronen Client des Bird Python SDK. Drei Schritte: installieren, senden, ausführen.

1. SDK installieren

Codebeispiel
python -m pip install messagebird-sdk flask
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 Präfix bk_us1_ / bk_eu1_ ab, sodass Bird() keine Argumente benötigt:
Codebeispiel
export BIRD_API_KEY="bk_us1_..."
Erstellen Sie app.py. Erzeugen Sie einen Bird beim Laden des Moduls und verwenden Sie ihn für alle Requests wieder: Er nutzt Connection-Pooling und kann sicher über Threads hinweg geteilt werden.
Codebeispiel
from bird import Bird, APIError
from flask import Flask, jsonify

app = Flask(__name__)
client = Bird()


@app.post("/send")
def send():
    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 jsonify({"error": str(err)}), 502
    return jsonify({"id": message.id, "status": message.status}), 202
from_ ist die Python-Schreibweise des Feldes from (from ist ein reserviertes Wort). onboarding@messagebird.dev ist der gemeinsame Onboarding-Absender von Bird (keine Domainverifizierung 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 wieder. Das verhindert, dass ein erneuter Versuch die Nachricht doppelt sendet.

3. Ausprobieren

Codebeispiel
flask run
curl -X POST http://localhost:5000/send
Bird nimmt die Nachricht mit einem 202 an und stellt sie asynchron zu; Ihre Route gibt die em_-ID und den Status zurück:
Codebeispiel
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted"
}
Rufen Sie die Nachricht anhand ihrer em_-ID mit client.email.get(...) ab und beobachten Sie, wie der Status von accepted zu delivered wechselt.

Nächste Schritte