تصميم التتابع API: بناء قاعدة تسليم البريد الإلكتروني مع عمال Cloudflare
هذه الصفحة مترجمة آليًا من الأصل الياباني. اقرأ الأصل الياباني
1. لماذا لم تستخدم مزود البريد الإلكتروني الخارجي API
عند إنشاء تطبيق لإرسال الملاحظات عبر البريد الإلكتروني، فإن أول ما يتبادر إلى الذهن هو إرسال API لمزود بريد إلكتروني رئيسي. ومع ذلك، بالنسبة للمطورين الأفراد، كانت عقبة مراجعة Google OAuth عالية للغاية.
Google OAuth ستتلقى التطبيقات التي لم تجتاز المراجعة شاشة تحذير تقول "لم يتم التحقق من هذا التطبيق بواسطة Google". هذا التحذير قاتل لتطبيق المذكرة. يرسل المستخدمون أفكارهم ومعلوماتهم الشخصية كمذكرة. إذا كانت التجربة الأولى تقول "لم يتم التحقق منها"، فمن سيثق بهذا التطبيق؟
تعد عملية تقديم الطلب لمراجعة Google OAuth طريقا صعبا للمطورين الأفراد. إعداد سياسات الخصوصية، وشرح شرعية النطاق، والتقييم الأمني - بغض النظر عما إذا كان فريقا من شركة كبيرة، فإن تكلفة دفع وظيفة واحدة لتسليم البريد الإلكتروني كبيرة جدا بالنسبة للتطبيق الذي تم تطويره بمفرده.
ما كان مطلوبا هو حل يمكنه إرسال رسائل البريد الإلكتروني دون تعقيد مراجعة OAuth دون الإضرار بثقة المستخدم. الجواب هو التتابع الخاص بي API.
2 Cloudflare العمال + Resend API الهندسة المعمارية
بنية Relay API بسيطة وقوية. تلقي طلب من تطبيق iOS ونقله إلى خدمة إرسال البريد الإلكتروني - وهو مصمم خصيصا لذلك.
Cloudflare Workers هي منصة بدون خادم تنفذ رمز TypeScript في مواقع الحافة في جميع أنحاء العالم. وفقا لوصف Cloudflare، لا توجد بداية باردة تحدث في جهاز افتراضي بدون خادم لأنه يقوم بتشغيل التعليمات البرمجية في بيئة تنفيذ خفيفة تسمى العزل.
Resend API هي خدمة حديثة لإرسال البريد الإلكتروني. من السهل إعداد SPF/DKIM/DMARC ويمكن استدعاؤه بسهولة من TypeScript.
من حيث التكلفة، يمكن استخدام الخطة المجانية لعمال Cloudflare حتى طلبات 100000 على 1، ويمكن استخدام الخطة المجانية ل Resend حتى 100 على 1 و3,000 شهريا (صفحة رسوم كل شركة اعتبارا من 2026 10). إنه تكوين يمكن أن يبدأ صغيرا وينتقل إلى خطة مدفوعة وفقا للمبلغ المرسل.
3 التحقق من عنوان البريد الإلكتروني (طريقة رمز الرقم 6)
Relay API يرسل ملاحظات فقط إلى عناوين البريد الإلكتروني التي تم التحقق منها. هذه هي الطبقة الأساسية للدفاع لمنع إساءة الاستخدام.
قبل البدء في إرسال مذكرة، يلزم تدفق للتحقق من عنوان البريد الإلكتروني للوجهة.
- يدخل المستخدمون عنوان بريدهم الإلكتروني في التطبيق
- Relay API يرسل رمز التحقق 6-digit إلى هذا العنوان
- أدخل رمز رقم 6 الذي تلقاه المستخدم في التطبيق
- اكتمل التحقق. بعد ذلك، سيسمح لك بإرسال ملاحظات إلى عنوان البريد الإلكتروني هذا
تمنع هذه الآلية إرسال الملاحظات إلى عناوين البريد الإلكتروني للأشخاص الآخرين دون إذن. سيتم إرسال رمز التحقق إلى صندوق الوارد لهذا العنوان، لذلك إذا لم تتمكن من رؤية صندوق الوارد، فلا يمكنك التحقق من العنوان كوجهة.
التحقق مرة واحدة فقط لكل عنوان بريد إلكتروني. بمجرد اكتمال التحقق، يمكنك الاستمرار في إرسال الملاحظات دون إدخال الرمز.
4 تنفيذ حد المعدل متعدد الطبقات
لمنع إساءة استخدام إرسال البريد API، قمنا بتنفيذ حد معدل على طبقات متعددة.
const RATE_LIMITS = {
devicePerMinute: 30,
devicePerDay: 200,
ipPerHour: 120,
globalPerDay: 300,
};
يتم تخزين العداد في Cloudflare KV وإعادة تعيينه لكل نافذة زمنية. أثناء المرور عبر الإرسال العادي، فإنه يقمع الوصول الجماعي غير المصرح به.
5. المساواة في القوة: مصممة لعدم إرسال نفس المذكرة مرتين
اتصال الشبكة غير مؤكد. قد ينقطع الاتصال بين الوقت الذي تضغط فيه على زر الإرسال ويتم إرجاع الرد. يحدد التطبيق أنه مهلة ويحاول إعادة إرساله، ولكن في الواقع تم تسليم الطلب الأول إلى الخادم - وهو سيناريو شائع.
بالنسبة لهذا السيناريو، يتم إعداده بالمثل.
- منح UUID (معرف رسالة) فريد لكل مذكرة
- Relay API يمررر معرف الرسالة كمفتاح Idempotency للطلب إلى خدمة إرسال البريد الإلكتروني (Resend)
- Resend يتذكر نفس المفتاح ل 24 لساعات، وإذا جاء نفس طلب المحتوى مرة أخرى، فسيعيد نفس الرد كما كان من قبل دون إرسال بريد إلكتروني
- سيرجع التطبيق استجابة ناجحة (سيكون ل 2 نفس الاستجابة مثل 1)
مع هذا التصميم، حتى لو كانت الشبكة غير مستقرة وحدثت إعادة محاولة، فلن يتم إرسال نفس المذكرة متداخلة خلال ساعات 24 (الفترة التي يتذكر فيها Resend المفتاح). خلال هذه الفترة يمكن إيقاف الازدواجية لأنه من المستحيل التمييز بين إعادة الإرسال بعد ذلك.
6. مزايا الحوسبة المتطورة
السبب الأكبر لاعتماد عمال Cloudflare كقاعدة لتسليم البريد الإلكتروني هو المزايا المتأصلة في الحوسبة المتطورة.
بالنسبة لتطبيق المذكرة، كان هذا المزيج خيارا سهلا للتعامل معه. تبدأ المعالجة في قاعدة قريبة من المستخدم، وليس هناك حاجة لإدارة الخادم، وإذا كان صغيرا، فيمكن تخفيض التكلفة. لهذا السبب صنعت Relay API في الحوسبة المتطورة.
يرجى تجربة "SimpleMemo" المبني على هذا الأساس التقني.
التنزيل باستخدام App Storeالأسئلة الشائعة
س. لماذا اخترت عمال Cloudflare؟
لا توجد بداية باردة من نوع الجهاز الظاهري، يمكن معالجتها في قاعدة قريبة من المستخدم، وإذا كانت صغيرة، يمكنك البدء بخطة مجانية.
س. ما هو معدل تسليم البريد الإلكتروني؟
تم تعيين SPF وDKIM وDMARC لنطاق المصدر. ومع ذلك، يمكن نقله إلى رسائل غير مرغوب فيها وفقا لتقدير خدمة البريد الإلكتروني للمستلم. إذا لم تتلقه، فتحقق من مجلد الرسائل غير المرغوب فيها وعنوان الوجهة لمعرفة ما إذا كنت قد تحققت منه.
س. هل سيتم حفظ محتويات المذكرة على الخادم؟
Relay API هو نوع من أنواع العبور. نحن لا نخزن محتويات المذكرة بشكل دائم. سيتم التعامل معها مؤقتا فقط بالقدر اللازم لمعالجة الإرسال.
س. ماذا يحدث إذا تم القبض علي في حد المعدل؟
تظل المذكرة في الانتظار الصادر (Outbox) للمحطة الطرفية، وعندما يتم استعادة الخط، يتم فتح التطبيق، ويتم تشغيل معالجة الخلفية، يتم إعادة إرسالها تلقائيا (هناك عدد أقصى من المرات لإعادة الإرسال التلقائي).
مقالات ذات صلة
المراجع
- Cloudflare وثائق العمال — منصة التنفيذ بدون خادم للترحيل API. يستخدم لمعالجة الطلب على الحافة
- RFC 5321 — بروتوكول نقل البريد البسيط (SMTP) — مواصفات البروتوكول الأساسية لإرسال رسائل البريد الإلكتروني. معيار SMTP متوافق مع التتابع API
- RFC 6376 — DomainKeys Identified Mail (DKIM) — مواصفات التوقيع الإلكتروني المستخدمة لمنع العبث برسائل البريد الإلكتروني الصادرة ومصادقة المصدر
- RFC 7208 — إطار سياسة المرسل (SPF) — إرسال مصادقة المجال. تحقق من إرسال البريد الإلكتروني من عنوان IP مصرح به
- Resend API الوثائق — مزود إرسال البريد الإلكتروني API. تم استدعاء خدمة تسليم البريد الإلكتروني Cloudflare من العمال