คู่มือโครงสร้างพื้นฐานอีเมล

Email API กับ Python

รูปแบบที่ปลอดภัยฝั่งแบ็กเอนด์สำหรับอีเมล transactional จาก Flask, Django, FastAPI หรือ worker

บริการ Python ควรส่งอีเมลจากโค้ดฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ ตรวจสอบอินพุต เก็บ ID ที่ได้จากการตอบกลับ และใช้ task queue เมื่อการส่งไม่ควรบล็อกคำขอ

ในทางปฏิบัติหมายความว่าอย่างไร

  • ข้อมูลรับรองที่จัดการผ่านสภาพแวดล้อม
  • payload ข้อความที่ผ่านการตรวจสอบแล้ว
  • งานแบบ async หรือแบบเข้าคิวสำหรับการลองใหม่
  • การบันทึกล็อกแบบมีโครงสร้างพร้อม message ID

เช็กลิสต์การนำไปใช้

  1. โหลด API key จาก secret manager หรือตัวแปรสภาพแวดล้อม
  2. ตรวจสอบฟิลด์ของข้อความก่อนส่งคำขอ
  3. ใช้ timeout และจำแนกความล้มเหลวที่ลองใหม่ได้
  4. บันทึก message ID ของผู้ให้บริการที่ได้รับกลับมา
  5. ย้ายอีเมลที่ไม่เร่งด่วนไปไว้ใน queue worker เมื่อปริมาณเพิ่มขึ้น

คำถามที่ทีมมักถาม

ควรใช้ SMTP หรือ HTTP email API จาก Python

ใช้ได้ทั้งสองแบบ แต่ HTTP API มักให้การยืนยันตัวตนที่ชัดเจนกว่า payload แบบ JSON และการตอบกลับเรื่องการส่งที่มีโครงสร้าง

การลองใหม่ควรทำงานอย่างไร

ลองใหม่เมื่อการส่งล้มเหลวหรือถูกจำกัดอัตราโดยใช้ backoff อย่าลองซ้ำอัตโนมัติกับความล้มเหลวที่อาจทำให้เกิดการส่งซ้ำ