คู่มือโครงสร้างพื้นฐานอีเมล
Email API กับ Python
รูปแบบที่ปลอดภัยฝั่งแบ็กเอนด์สำหรับอีเมล transactional จาก Flask, Django, FastAPI หรือ worker
บริการ Python ควรส่งอีเมลจากโค้ดฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ ตรวจสอบอินพุต เก็บ ID ที่ได้จากการตอบกลับ และใช้ task queue เมื่อการส่งไม่ควรบล็อกคำขอ
ในทางปฏิบัติหมายความว่าอย่างไร
- ข้อมูลรับรองที่จัดการผ่านสภาพแวดล้อม
- payload ข้อความที่ผ่านการตรวจสอบแล้ว
- งานแบบ async หรือแบบเข้าคิวสำหรับการลองใหม่
- การบันทึกล็อกแบบมีโครงสร้างพร้อม message ID
เช็กลิสต์การนำไปใช้
- โหลด API key จาก secret manager หรือตัวแปรสภาพแวดล้อม
- ตรวจสอบฟิลด์ของข้อความก่อนส่งคำขอ
- ใช้ timeout และจำแนกความล้มเหลวที่ลองใหม่ได้
- บันทึก message ID ของผู้ให้บริการที่ได้รับกลับมา
- ย้ายอีเมลที่ไม่เร่งด่วนไปไว้ใน queue worker เมื่อปริมาณเพิ่มขึ้น
คำถามที่ทีมมักถาม
ควรใช้ SMTP หรือ HTTP email API จาก Python
ใช้ได้ทั้งสองแบบ แต่ HTTP API มักให้การยืนยันตัวตนที่ชัดเจนกว่า payload แบบ JSON และการตอบกลับเรื่องการส่งที่มีโครงสร้าง
การลองใหม่ควรทำงานอย่างไร
ลองใหม่เมื่อการส่งล้มเหลวหรือถูกจำกัดอัตราโดยใช้ backoff อย่าลองซ้ำอัตโนมัติกับความล้มเหลวที่อาจทำให้เกิดการส่งซ้ำ