Sign inGet Started

Python · Flask

Envie seu primeiro e-mail a partir de uma rota Flask usando o cliente síncrono do Bird Python SDK. Três etapas: instalar, enviar, executar.

1. Instale o SDK

Exemplo de código
python -m pip install messagebird-sdk flask
Requer Python 3.10+. O pacote de importação é bird.

2. Envie um e-mail

Exporte sua chave API. O SDK lê BIRD_API_KEY do ambiente e infere a região (us1 ou eu1) a partir do prefixo bk_us1_ / bk_eu1_, então Bird() não precisa de argumentos:
Exemplo de código
export BIRD_API_KEY="bk_us1_..."
Crie app.py. Construa um Bird no carregamento do módulo e reutilize-o entre requisições: ele mantém um pool de conexões e pode ser compartilhado entre threads com segurança.
Exemplo de código
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_ é a forma Python do campo from (from é uma palavra reservada). onboarding@messagebird.dev é o remetente compartilhado de onboarding do Bird (sem necessidade de verificação de domínio) e delivered@messagebird.dev é um destinatário sandbox que sempre entrega.
O SDK repete automaticamente falhas transitórias e reutiliza a chave de idempotência da chamada em cada tentativa. Isso evita que uma nova tentativa envie a mensagem duas vezes.

3. Teste

Exemplo de código
flask run
curl -X POST http://localhost:5000/send
Bird aceita a mensagem com um 202 e a entrega de forma assíncrona; sua rota retorna o ID em_ e o status:
Exemplo de código
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted"
}
Busque a mensagem pelo ID em_ com client.email.get(...) e acompanhe o status mudar de accepted para delivered.

Próximos passos