Python · Flask
Send your first email from a Flask route using the Bird Python SDK's sync client. Three steps: install, send, run.
1. Install the SDK
代码示例
python -m pip install messagebird-sdk flaskRequires Python 3.10+. The import package is bird.
2. Send an email
Export your API key. The SDK reads BIRD_API_KEY from the environment and infers the region (us1 or eu1) from the bk_us1_ / bk_eu1_ prefix, so Bird() needs no arguments:
代码示例
export BIRD_API_KEY="bk_us1_..."Create app.py. Construct one Bird at module load and reuse it across requests: it pools connections and is safe to share across threads.
代码示例
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}), 202from_ is the Python spelling of the from field (from is a reserved word). onboarding@messagebird.dev is Bird's shared onboarding sender (no domain verification needed) and delivered@messagebird.dev is a sandbox recipient that always delivers.
The SDK retries transient failures automatically and reuses the call's idempotency key on each attempt. This prevents a retry from sending the message twice.
3. Try it
代码示例
flask run
curl -X POST http://localhost:5000/sendBird accepts the message with a 202 and delivers it asynchronously; your route returns the em_ ID and status:
代码示例
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Fetch the message by its em_ ID with client.email.get(...) and watch the status move from accepted to delivered.
Next steps
- Python SDK email reference: every method and option.
- Send your first email: the same flow with curl and the full sandbox address list.
- Sending domains: verify your own domain for production sending.
- Email API reference: the full request and response schema.
Related resources
Continue with the documentation, guides and examples for this topic. Resources are in English.
Watch the guideTesting email without spamming anyoneExplore the capabilityTest email deliveryFollow the learning pathOperate messaging reliably
Try the practice and get an implementation brief