عند إضافة مستند إلى المجموعة، ترصده الإضافة لمعالجته بهدف إرساله عبر البريد الإلكتروني. تنشئ الإضافة حقل delivery
وتعدّله في المستند أثناء معالجة الرسالة الإلكترونية.
معالجة تسليم الرسائل الإلكترونية
يمكن ملء الحقل delivery
بالحقول التالية:
- state: إحدى القيم
PENDING
أوPROCESSING
أوSUCCESS
أوERROR
- startTime: الطابع الزمني لبدء معالجة الرسالة الإلكترونية.
- endTime: الطابع الزمني عند اكتمال معالجة الرسالة الإلكترونية (أي انتهت بالحالة
SUCCESS
أوERROR
). - خطأ: إذا حدث خطأ في تسليم الرسالة الإلكترونية، ستظهر رسالة خطأ هنا.
- attempts: عدد محاولات تسليم هذه الرسالة الإلكترونية.
- leaseExpireTime: في حال حدوث تعليق أو انتهاء المهلة، يشير إلى الوقت الذي يجب فيه اعتبار الحالة
PROCESSING
خطأً. - info: بعد إرسال الرسالة الإلكترونية بنجاح (إلى عنوان واحد على الأقل)، ستتم تعبئة هذا الحقل بالحقول التالية:
- messageId: معرّف الرسالة الإلكترونية التي تم تسليمها.
- accepted: مصفوفة من عناوين البريد الإلكتروني التي تم تسليم الرسالة الإلكترونية إليها بنجاح.
- rejected: مصفوفة من عناوين البريد الإلكتروني التي تعذّر تسليم الرسالة الإلكترونية إليها.
- في انتظار المراجعة: مصفوفة من عناوين البريد الإلكتروني التي رفضها SMTP مؤقتًا.
- الاستجابة: هي آخر استجابة من خادم SMTP.
عادةً ما تنتقل الرسالة الإلكترونية من PENDING
إلى PROCESSING
ثم إلى SUCCESS
أو ERROR
. بعد الوصول إلى الحالة SUCCESS
أو ERROR
، لن تؤدي التغييرات الإضافية على المستند إلى أن يرسل التطبيق المساعد رسالة إلكترونية أخرى. لإعادة إرسال رسالة إلكترونية تتضمّن آخر التعديلات على المستند، يمكنك تغيير state
إلى PENDING
أو RETRY
.
عمليات إعادة المحاولة اليدوية
هناك حالات يتعذّر فيها تسليم الرسائل الإلكترونية بطريقة يمكن استردادها أو يمكن تصحيح المستند يدويًا لتسليمه بشكل صحيح مع إجراء تعديلات بسيطة. على الرغم من أنّ إعادة المحاولة ليست تلقائية، يمكنك تغيير state
يدويًا في الحقل delivery
إلى RETRY
لكي تحاول الإضافة إرسال الرسالة الإلكترونية مرة أخرى (ويتم زيادة عدد attempts
).