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 myappRichiede 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
- Riferimento email Python SDK: ogni metodo e opzione.
- Invia la tua prima email: lo stesso flusso con curl e l'elenco completo degli indirizzi sandbox.
- Domini di invio: verifica il tuo dominio per l'invio in produzione.
- Riferimento API email: lo schema completo di richiesta e risposta.
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Guarda la guidaTesting email without spamming anyoneEsplora la funzionalitàTest email deliverySegui il percorso di apprendimentoOperate messaging reliably
Prova l'esercitazione e ottieni un brief di implementazione