Python · Django
Wyślij pierwszego e-maila z widoku Django, korzystając z synchronicznego klienta Bird Python SDK. Trzy kroki: zainstaluj, wyślij, uruchom.
1. Zainstaluj SDK
Przykład kodu
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myappWymaga Pythona 3.10+. Pakiet importu to bird.
2. Wyślij e-maila
Wyeksportuj swój klucz API. SDK odczytuje BIRD_API_KEY ze zmiennych środowiskowych i rozpoznaje region (us1 lub eu1) na podstawie prefiksu bk_us1_ / bk_eu1_, więc Bird() nie wymaga argumentów:
Przykład kodu
export BIRD_API_KEY="bk_us1_..."Dodaj widok w myapp/views.py. Utwórz jeden obiekt Bird przy ładowaniu modułu i używaj go ponownie w kolejnych żądaniach: obsługuje pulę połączeń i jest bezpieczny do współdzielenia między wątkami.
Przykład kodu
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)Wyłączenie CSRF pozwala uruchomić ten lokalny przykład z cURL. Przed udostępnieniem trasy dodaj uwierzytelnianie i odpowiednią politykę CSRF.
Podłącz go w config/urls.py:
Przykład kodu
from django.urls import path
from myapp.views import send_email
urlpatterns = [path("send/", send_email)]from_ to pythonowa nazwa pola from (from jest słowem zastrzeżonym). onboarding@messagebird.dev to współdzielony nadawca onboardingowy Bird (nie wymaga weryfikacji domeny), a delivered@messagebird.dev to odbiorca sandbox, do którego wiadomości zawsze docierają.
SDK automatycznie ponawia próby w przypadku przejściowych błędów i przy każdej próbie wykorzystuje ten sam klucz idempotentności wywołania. Dzięki temu ponowienie próby nie spowoduje dwukrotnego wysłania wiadomości.
3. Przetestuj
Przykład kodu
python manage.py runserver
curl -X POST http://localhost:8000/send/Bird przyjmuje wiadomość ze statusem 202 i dostarcza ją asynchronicznie; Twój widok zwraca ID em_ i status:
Przykład kodu
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}Pobierz wiadomość po jej ID em_ za pomocą client.email.get(...) i obserwuj zmianę statusu z accepted na delivered.
Następne kroki
- Dokumentacja e-mail dla Pythona SDK: wszystkie metody i opcje.
- Wyślij pierwszego e-maila: ten sam przepływ z curl i pełna lista adresów sandbox.
- Domeny wysyłkowe: zweryfikuj własną domenę do wysyłki produkcyjnej.
- Dokumentacja API e-mail: pełny schemat żądania i odpowiedzi.
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Obejrzyj przewodnikTesting email without spamming anyonePoznaj możliwościTest email deliveryPodążaj ścieżką naukiOperate messaging reliably
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy