Python · Django
Envía tu primer correo electrónico desde una vista de Django usando el cliente síncrono del Bird Python SDK. Tres pasos: instalar, enviar, ejecutar.
1. Instala el SDK
Ejemplo 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 myappRequiere Python 3.10+. El paquete de importación es bird.
2. Envía un correo electrónico
Exporta tu clave API. El SDK lee BIRD_API_KEY del entorno e infiere la región (us1 o eu1) a partir del prefijo bk_us1_ / bk_eu1_, así que Bird() no necesita argumentos:
Ejemplo de código
export BIRD_API_KEY="bk_us1_..."Añade una vista en myapp/views.py. Construye un Bird al cargar el módulo y reutilízalo entre peticiones: agrupa conexiones y es seguro compartirlo entre hilos.
Ejemplo 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)La exención de CSRF mantiene ejecutable este ejemplo local con cURL. Añade autenticación y una política de CSRF adecuada antes de exponer la ruta.
Conéctalo en config/urls.py:
Ejemplo de código
from django.urls import path
from myapp.views import send_email
urlpatterns = [path("send/", send_email)]from_ es la forma en Python del campo from (from es una palabra reservada). onboarding@messagebird.dev es el remitente compartido de incorporación de Bird (no requiere verificación de dominio) y delivered@messagebird.dev es un destinatario de sandbox que siempre entrega.
El SDK reintenta automáticamente los fallos transitorios y reutiliza la clave de idempotencia de la llamada en cada intento. Esto evita que un reintento envíe el mensaje dos veces.
3. Pruébalo
Ejemplo de código
python manage.py runserver
curl -X POST http://localhost:8000/send/Bird acepta el mensaje con un 202 y lo entrega de forma asíncrona; tu vista devuelve el ID de em_ y el estado:
Ejemplo de código
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Consulta el mensaje por su ID de em_ con client.email.get(...) y observa cómo el estado pasa de accepted a delivered.
Próximos pasos
- Referencia de email del SDK de Python: cada método y opción.
- Envía tu primer correo electrónico: el mismo flujo con curl y la lista completa de direcciones de sandbox.
- Dominios de envío: verifica tu propio dominio para envío en producción.
- Referencia de API de email: el esquema completo de solicitud y respuesta.
Recursos relacionados
Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.
Ver la guíaTesting email without spamming anyoneExplorar la funcionalidadTest email deliverySeguir la ruta de aprendizajeOperate messaging reliably
Prueba el ejercicio y obtén un resumen de implementación