Sign inGet Started

Python · Django

Invia la tua prima email da una vista Django usando il client sincrono dell'Bird Python SDK. Tre passaggi: installa, invia, esegui.

1. Installa l'SDK

Esempio di codice
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myapp
Richiede Python 3.10+. Il pacchetto da importare è bird.

2. Invia un'email

Esporta la tua chiave API. L'SDK legge BIRD_API_KEY dall'ambiente e deduce la regione (us1 o eu1) dal prefisso bk_us1_ / bk_eu1_, quindi Bird() non richiede argomenti:
Esempio di codice
export BIRD_API_KEY="bk_us1_..."
Aggiungi una vista in myapp/views.py. Costruisci un singolo Bird al caricamento del modulo e riutilizzalo tra le richieste: gestisce un pool di connessioni ed è sicuro da condividere tra i thread.
Esempio di codice
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)
L'esenzione CSRF mantiene eseguibile questo esempio locale con cURL. Aggiungi l'autenticazione e una policy CSRF appropriata prima di esporre la rotta.
Collegalo in config/urls.py:
Esempio di codice
from django.urls import path
from myapp.views import send_email

urlpatterns = [path("send/", send_email)]
from_ è la forma Python del campo from (from è una parola riservata). onboarding@messagebird.dev è il mittente condiviso di onboarding di Bird (non serve la verifica del dominio) e delivered@messagebird.dev è un destinatario sandbox che recapita sempre.
Il SDK ripete automaticamente i tentativi in caso di errori transitori e riutilizza la chiave di idempotenza della chiamata a ogni tentativo. Questo impedisce che un nuovo tentativo invii il messaggio due volte.

3. Provalo

Esempio di codice
python manage.py runserver
curl -X POST http://localhost:8000/send/
Bird accetta il messaggio con un 202 e lo recapita in modo asincrono; la tua vista restituisce l'ID em_ e lo stato:
Esempio di codice
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted"
}
Recupera il messaggio tramite il suo ID em_ con client.email.get(...) e osserva lo stato passare da accepted a delivered.

Prossimi passaggi