Sign inGet Started

Python · Django

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

1. Instale o SDK

Exemplo de código
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myapp
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_..."
Adicione uma view em myapp/views.py. Crie um Bird no carregamento do módulo e reutilize-o entre as 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 django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST

client = Bird()


@csrf_exempt
@require_POST
def send_email(request):
    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 JsonResponse({"error": str(err)}, status=502)
    return JsonResponse({"id": message.id, "status": message.status}, status=202)
A isenção de CSRF mantém este exemplo local com cURL funcional. Adicione autenticação e uma política de CSRF adequada antes de expor a rota.
Conecte a rota em config/urls.py:
Exemplo de código
from django.urls import path
from myapp.views import send_email

urlpatterns = [path("send/", send_email)]
from_ é a forma em 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 tenta novamente em caso de falhas transitórias automaticamente 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
python manage.py runserver
curl -X POST http://localhost:8000/send/
Bird aceita a mensagem com um 202 e a entrega de forma assíncrona; sua view retorna o ID e o status do em_:
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