عنصر العدّاد التنازلي
مؤقّت حيّ يعدّ تنازليًا نحو موعد نهائي لعمليات الإطلاق والتخفيضات ومواعيد الإغلاق — يُعرض على الخادم في صورة GIF متحركة، وهي التقنية الوحيدة التي تُبقي العدّ التنازلي مستمرًا فعلًا في جميع تطبيقات البريد الرئيسية، بما فيها Outlook.
آلية العمل
لا يوجد تطبيق بريد يشغّل حركات CSS أو JavaScript بموثوقية كافية لتحريك ساعة من الصفر، لذا لا يحاول عنصر العدّاد التنازلي ذلك؛ بل تضمّن وسم <img> عاديًا يشير إلى صورة GIF متحركة تُعرض على الخادم. عند جلب الصورة، يحسب MailInApp الوقت المتبقي حتى الموعد النهائي المضبوط، ويرمّز من الصفر صورة ساعة رقمية جديدة بنمط "DD:HH:MM:SS" (بمرمِّز GIF89a مكتوب من الصفر، لا مكتبة مغلَّفة). يرسم ثانية واحدة في كل إطار لستين إطارًا، ثم يتوقف عند الإطار الأخير، فتتقدّم الصورة بشكل مرئي لدقيقة كاملة بعد فتحها، ثم تثبت. وقد تتشارك الطلبات الموقّعة المتطابقة عرضًا واحدًا لمدة تصل إلى عشر ثوانٍ للحدّ من تكلفة التكرار؛ ولذا فالعدّاد التنازلي شبه آني لا عارضٌ غير محدود لكل طلب.
رابط URL الصورة نفسه موقَّع بـ HMAC (إذ يُدمج الطابع الزمني للموعد النهائي واللون في التوقيع)، فلا يمكن لأحد غير MailInApp استخدامه عارضًا مستقلًا لصور GIF للعدّ التنازلي. نقطة النهاية عامة، مثل نقطتَي نهاية التفاعلات وتتبّع الفتح، لكنها لا تخدم إلا ما طُلب منها توقيعه.
لا يوجد اختلاف بين البريد والعرض المباشر كما هو الحال مع العرض الدوّار أو القائمة القابلة للطي — فكلا السياقين يضمّن نقطة نهاية الصورة نفسها. يستخدم البريد رابط URL مطلقًا (فالرسالة ليس لها أصل صفحة يُحلّ المسار النسبي بالنسبة إليه)، بينما يستخدم العرض المباشر رابطًا نسبيًا إلى الأصل.
ولا يوجد كذلك «مستوى بديل» منفصل غير الصورة نفسها. فتطبيق البريد الذي لا يستطيع تحريك صور GIF يعرض مع ذلك الإطار الأول — وهو لقطة ذات معنى ودقيقة للوقت المتبقي، لا عنصر نائب. ويحمل كل من النص البديل للعنصر والجزء النصي العادي من الرسالة الوقت المتبقي نفسه بالكلمات (مثل "Offer ends in 2d 4h")، فيبقى الموعد النهائي مقروءًا حتى مع إيقاف الصور تمامًا.
وبمجرد انقضاء الموعد النهائي، يتوقف العنصر عن عرض صورة GIF وينتقل إلى نص عادي لحالة الانتهاء بدلًا منها — فلا مزيد من طلبات الصورة، ولا "00:00:00:00" قديمًا عالقًا.
الحقول القابلة للضبط:
- التسمية — نص يظهر فوق الصورة المتحركة، مثل «ينتهي العرض خلال».
- ينتهي في — الموعد النهائي، ويُختار تاريخًا ووقتًا.
- اللون — لون الأرقام والنص، ويُستخدم في صورة GIF المعروضة وفي نص حالة الانتهاء معًا.
- حجم الخط (px) — حجم خط التسمية أثناء العدّ التنازلي.
- حجم الخط بعد الانتهاء (px) — حجم خط رسالة «انتهى هذا العرض» التي تظهر بعد انقضاء الموعد النهائي.
العدّاد التنازلي محتوى خالص، مثل عنصر الصورة أو النص — لا شيء يُنقر عليه أو يُرسَل، فلا يولّد أبدًا حدث تفاعل ولا يظهر أبدًا في لوحة الردود أو تصدير CSV أو Webhook المشروع.
أمثلة
Subject
Our biggest sale of the year starts now
الاستخدام النموذجي رسالة تخفيضات خاطفة بموعد نهائي بعد 24 ساعة: فالعدّاد الذي يتناقص أمام العين هو ما يجعل الإلحاح مفهومًا بنظرة واحدة. ويبقى دقيقًا سواء فتح المستلم الرسالة في الدقيقة التي وصلت فيها أو بعد يومين، بعد انتهاء التخفيضات، وعندها يعرض حالة الانتهاء بشكل صحيح بدلًا من كذبة مجمّدة. ويمكن لإطلاق منتج بمخزون محدود أن يقرن عدّادًا تنازليًا بـ عنصر المنتج فتنقل الساعة وعدد القطع المتوفرة الإلحاح معًا. راجع التجارة الإلكترونية وإطلاق المنتجات للنمط كاملًا. ويمكن لتذكير بالتسجيل في فعالية أن يعدّ تنازليًا نحو الموعد النهائي للتسجيل (لا الفعالية نفسها؛ فهذا دور الإضافة إلى التقويم) لدفع المترددين إلى التصرّف قبل إغلاق الباب.
كيف يبدو البديل الثابت
<div style="margin:12px 0">
<p style="margin:0 0 6px;font-size:16px;font-weight:700;color:#111827">Offer ends in</p>
<img
src="https://mailinapp.com/api/countdown?t=1753401600000&c=111827&s=9f2a...&"
width="207" height="34"
alt="Offer ends in 2d 4h"
style="display:block;max-width:100%;height:auto"
>
</div>
لا يوجد «ترميز بديل» منفصل غير هذا: كل تطبيقات البريد تعرض وسم <img> نفسه. والفرق الوحيد هو ما إذا كان التطبيق يحرّك صور GIF (ومعظمها يفعل) أو يتوقف عند الإطار الأول (حفنة من التطبيقات القديمة) — وفي الحالتين يظهر وقت متبقٍّ دقيق.