Python · Django
使用 Bird Python SDK 的同步客户端,从 Django 视图发送第一封邮件。三个步骤:安装、发送、运行。
1. 安装 SDK
代码示例
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myapp需要 Python 3.10+。导入包名为 bird。
2. 发送邮件
导出你的 API 密钥。SDK 从环境变量中读取 BIRD_API_KEY,并根据 bk_us1_ / bk_eu1_ 前缀推断区域(us1 或 eu1),因此 Bird() 无需传入参数:
代码示例
export BIRD_API_KEY="bk_us1_..."在 myapp/views.py 中添加一个视图。在模块加载时构造一个 Bird,并在所有请求中复用:它会池化连接,且可安全地跨线程共享。
代码示例
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)CSRF 豁免使这个本地 cURL 示例可以直接运行。在暴露该路由之前,请添加身份验证和适当的 CSRF 策略。
在 config/urls.py 中接入路由:
代码示例
from django.urls import path
from myapp.views import send_email
urlpatterns = [path("send/", send_email)]from_ 是 from 字段的 Python 写法(from 是保留字)。onboarding@messagebird.dev 是 Bird 的共享入门发件人(无需域名验证),delivered@messagebird.dev 是一个始终可送达的沙盒收件人。
SDK 会自动重试暂时性故障,并在每次尝试时复用该调用的幂等键。这可以防止重试导致消息被发送两次。
3. 试一试
代码示例
python manage.py runserver
curl -X POST http://localhost:8000/send/Bird 以 202 接受消息并异步投递;你的视图返回 em_ ID 和状态:
代码示例
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted"
}通过 em_ ID 使用 client.email.get(...) 获取消息,观察状态从 accepted 变为 delivered。
后续步骤
- Python SDK 邮件参考:所有方法和选项。
- 发送第一封邮件:使用 curl 的相同流程以及完整的沙盒地址列表。
- 发送域名:验证你自己的域名以用于生产环境发送。
- 邮件 API 参考:完整的请求和响应结构。
相关资源
继续查阅此主题的文档、指南和示例。资源为英文。