تكامل رسائل SMS عربية في التطبيقات بسرعة

لتشغيل رسائل SMS عربية في التطبيقات بشكل صحيح تحتاج إلى ثلاثة أشياء فقط: مزود محلي يدعم ترميز UCS-2، واسم مُرسِل (Sender ID) مُسجَّل لدى الجهة التنظيمية في بلدك، وقالب نصي لا يتجاوز 70 حرفًا. هذا كل شيء. الباقي تفاصيل تنفيذية يمكن إنجازها في ساعة أو ساعتين.
ومع ذلك، أكثر من نصف المشاريع التي رأيتها تتعثر في نقطة واحدة سخيفة: الرسالة تصل مربعات فارغة أو «؟؟؟». دعنا نحل ذلك أولًا، ثم نبني عليه نظام إشعارات كامل.
لماذا تصل رسائل SMS عربية في التطبيقات مشوّهة؟
السبب شبه دائمًا هو الترميز. الرسائل النصية القياسية تُرسل بترميز GSM-7 الذي لا يحتوي على الحروف العربية أصلًا، فيستبدل كل حرف لا يعرفه بعلامة استفهام أو مربع. الحل هو إجبار المزود على استخدام ترميز UCS-2 (أو Unicode) في حقل الترميز عند استدعاء الـ API.
بعض المزودين يكتشفون العربية تلقائيًا. وبعضهم لا. الفرق بين الحالتين هو تجربة مستخدم محترمة، ورسالة تبدو كخطأ برمجي.
في لوحة تحكم مزود مثل Unifonic أو تقنيات، ستجد عادة خيارًا باسم Encoding أو Message Type. اختر Unicode ولا تعتمد على الافتراضي. أما إذا كنت تستخدم Twilio أو Amazon SNS فالنظام يستشعر الأحرف غير اللاتينية ويحوّل الترميز، لكنه في المقابل يحسب الرسالة على أساس 70 حرفًا.
مشكلة ثانية أقل شهرة: الخط على الجهاز. هاتف قديم برمجية عربية ناقصة قد يعرض الحروف منفصلة «ك ت ا ب» بدل «كتاب». لا يمكنك إصلاح ذلك من جهتك، لكن نسبة هذه الأجهزة في الخليج ضئيلة جدًا بعد انتشار الهواتف الذكية على نطاق واسع.
وثالثًا: خلط الأرقام. إذا أرسلت رمز تحقق بالأرقام الهندية (٤٥٨٢) فقد ينسخه المستخدم ولا يُقبل في حقل يتوقع أرقامًا لاتينية. اقرأ تفصيل هذه المسألة في مقال الأرقام العربية والهندية. قاعدتي الشخصية: رموز التحقق بالأرقام اللاتينية دائمًا، بلا استثناء.
70 حرفًا لا 160: حسابات الترميز والتكلفة
الرسالة الإنجليزية تسع 160 حرفًا في مقطع واحد. الرسالة العربية تسع 70 حرفًا فقط. هذا ليس تعسفًا من المزودين، بل لأن كل حرف Unicode يشغل 16 بت مقابل 7 بت للحرف اللاتيني.
وإذا تجاوزت 70 حرفًا؟ تُقسَّم الرسالة إلى مقاطع متسلسلة، وينخفض عدد الأحرف في كل مقطع إلى 67 بسبب رأس الربط (UDH). أي أن رسالة من 140 حرفًا عربيًا = مقطعان = ضعف السعر.
مثال عملي. قارن بين صياغتين لإشعار توصيل:
- صياغة مطوّلة (128 حرفًا = مقطعان): «عميلنا العزيز، يسرنا إبلاغكم بأن طلبكم رقم 4821 قد خرج من المستودع وهو الآن في الطريق إليكم، شكرًا لثقتكم بنا».
- صياغة مضغوطة (58 حرفًا = مقطع واحد): «طلبك 4821 في الطريق إليك. تتبّع: codeyy.ai/t/4821».
نفس المعلومة، نصف التكلفة، ووضوح أعلى. لو ترسل 30 ألف إشعار شهريًا فأنت توفّر ثمن 30 ألف مقطع — مبلغ يُلاحظ في فاتورة نهاية الشهر بالريال أو الدرهم.
نصيحة من التجربة: اكتب القوالب في جدول واحد واحسب أحرفها قبل البرمجة. استخدم أي عدّاد أحرف واعتبر الحد 65 حرفًا لتترك مساحة للمتغيرات مثل اسم العميل ورقم الطلب. الاسم «عبدالرحمن» يضيف 9 أحرف، و«محمد» يضيف 4، والفارق يكفي لدفع الرسالة إلى مقطع ثانٍ عند بعض العملاء دون أن تدري.
اختيار مزود الرسائل النصية في الخليج
رأيي صريح: ابدأ بمزود محلي خليجي، لا بمزود عالمي. السبب ليس السعر فقط، بل تسجيل اسم المُرسِل والدعم الفني بالعربية وسرعة التسليم عبر شبكات STC وزين وموبايلي واتصالات ودو وأوريدو.
الخيارات الشائعة في السوق السعودي والخليجي تشمل Unifonic (يونيفونيك، شركة سعودية نشأت في الرياض وتوسعت إقليميًا)، وتقنيات (Taqnyat)، ومسجات (Msegat)، وOto، إلى جانب خدمات المشغلين أنفسهم. أما Twilio وVonage وAmazon SNS فهي ممتازة تقنيًا وتوثيقها أفضل بكثير، لكنك ستتعامل مع وسيط دولي في مسألة تسجيل اسم المرسل، وأحيانًا مع تأخير في التسليم داخل السعودية.
المعايير التي أفحصها قبل التوقيع:
- دعم UCS-2 موثّق مع أمثلة عربية في التوثيق، لا مجرد وعد في صفحة التسويق.
- تقارير التسليم (DLR) عبر Webhook، لا ملف Excel يُرسل غدًا.
- مهلة تسجيل اسم المُرسِل: اسأل صراحة: كم يومًا؟ الإجابة الواقعية في الخليج غالبًا من 3 إلى 10 أيام عمل.
- فاتورة بالريال أو الدرهم مع فاتورة ضريبية سليمة تشمل ضريبة القيمة المضافة، وهذا يريح محاسبك كثيرًا.
- حساب تجريبي مع 10 رسائل مجانية لاختبار العربية قبل الدفع.
اطلب من كل مزود إرسال رسالة اختبارية واحدة إلى رقمك قبل أي التزام. إن وصلت الحروف متصلة وواضحة على iPhone وAndroid، فقد اجتاز الحد الأدنى.
كيف تربط إشعارات SMS داخل تطبيقك خطوة بخطوة؟
اختصارًا: أنشئ حسابًا عند مزود، سجّل اسم المُرسِل، احصل على مفتاح API، خزّنه كمتغيّر بيئة سرّي، ثم استدعِ نقطة نهاية إرسال الرسالة من الخدمة الخلفية لتطبيقك مع الرقم بصيغة دولية والنص والترميز Unicode. أخيرًا استقبل تقرير التسليم عبر Webhook وسجّله في قاعدة البياناتك.
وبالتفصيل، هذه هي الخطوات كما أنفّذها فعليًا:
- 1) توحيد صيغة الأرقام: خزّن كل رقم بصيغة E.164، أي +9665XXXXXXXX للسعودية و+9715XXXXXXXX للإمارات. لا تخزّن «05» ولا مسافات ولا شرطات. هذه الخطوة وحدها تمنع نصف حالات الفشل.
- 2) تسجيل اسم المُرسِل: اسم مختصر بالحروف اللاتينية مثل CODEYY، مطابق للسجل التجاري.
- 3) حفظ المفتاح السري: في متغيرات البيئة أو خزانة أسرار. لا تضعه داخل كود التطبيق على الهاتف أبدًا — من يفكّ حزمة التطبيق سيستخدم رصيدك في الرسائل.
- 4) طبقة إرسال واحدة: دالة واحدة اسمها
sendSmsتمر عبرها كل الرسائل، لتغيّر المزود لاحقًا في سطر واحد. - 5) استقبال التقارير: رابط Webhook يسجّل الحالة: مُرسل، مُستلَم، فاشل، وسبب الفشل.
إن كنت غير تقني، فمنصات البناء بالذكاء الاصطناعي تختصر هذا كله إلى وصف بالعربية للمطلوب. راجع دليل بناء التطبيقات بالذكاء لترى كيف تُبنى طبقة الإشعارات دون كتابة كود.
قوالب عربية جاهزة تعمل فعلًا
القالب الجيد قصير، ويبدأ بالمعلومة لا بالمجاملة، ويحتوي عنصرًا واحدًا قابلًا للتنفيذ. المستخدم يقرأ الرسالة في شاشة الإشعار وهو يقود أو يمشي؛ لن يفتحها ليقرأ فقرة ترحيب.
هذه قوالب استخدمتها في مشاريع خليجية حقيقية:
- رمز التحقق: «رمز التحقق: 482910. لا تشاركه مع أحد.» (43 حرفًا، مقطع واحد).
- تأكيد حجز: «تم تأكيد حجزك الأحد 2:30 م. للإلغاء: codeyy.ai/c/91» (48 حرفًا).
- تذكير بالدفع: «فاتورتك 320 ر.س تستحق غدًا. ادفع الآن: codeyy.ai/p/77».
- خرج للتوصيل: «مندوبك في الطريق، الوصول خلال 20 دقيقة تقريبًا.»
ثلاث قواعد أتبعها بصرامة. الأولى: لا تكتب اسم الشركة في متن الرسالة، فهو ظاهر في اسم المُرسِل ويستهلك أحرفًا ثمينة. الثانية: استخدم روابط مختصرة على نطاقك الخاص لأن الروابط المختصرة العامة تُصفّى أحيانًا كرسائل مزعجة. الثالثة: لا تستخدم إيموجي في رسائل التحقق؛ فهي تضيف حرفين إلى أربعة وتظهر مشوّهة على أجهزة قديمة.
وماذا عن اللهجة؟ الفصحى المبسّطة هي الخيار الآمن لرسالة تصل إلى مستخدم في جدة وآخر في الكويت وثالث في مسقط. أما اللهجة فتصلح للحملات التسويقية الموجهة لسوق واحد فقط، وقد أفصّل هذا في مقال لهجات العربية في التطبيقات. ولا تنسَ اتساق النص العربي مع بقية واجهتك كما في دليل دعم اللغة العربية في التطبيقات.
الامتثال التنظيمي: ما تحتاج معرفته قبل أول رسالة
هذه هي النقطة التي تُعطّل المشاريع أسبوعًا كاملًا لأن أحدًا لم يسأل عنها مبكرًا. في السعودية، تنظّم هيئة الاتصالات والفضاء والتقنية (CST) الرسائل التجارية، ويُلزَم كل مرسل بتسجيل اسم مُرسِل مرتبط بالسجل التجاري. الرسائل التسويقية تخضع لقواعد إضافية: إذن مسبق من المستلم، وآلية إلغاء اشتراك واضحة، والتزام بأوقات الإرسال المسموحة.
في الإمارات، تشرف هيئة تنظيم الاتصالات والحكومة الرقمية (TDRA) على الأمر، ويُسجَّل اسم المُرسِل عبر المشغل (اتصالات أو دو). القاعدة العملية هناك: الرسائل التسويقية لا تُرسل في أوقات الراحة، والرسائل الترويجية تحتاج قوائم موافقة موثّقة.
ما أنصح به عمليًا:
- افصل المسارين: رسائل خدمية (رمز تحقق، فاتورة، حالة طلب) في مسار، ورسائل تسويقية في مسار آخر باسم مُرسِل مختلف إن أمكن. الخلط بينهما هو أسرع طريق لتعليق حسابك.
- خزّن دليل الموافقة: تاريخ وساعة ومصدر موافقة كل رقم. عند أي شكوى ستحتاج هذا السجل.
- احترم نظام حماية البيانات الشخصية السعودي (PDPL): أرقام الجوال بيانات شخصية، فقلّل من نسخها وشاركها فقط مع المزود.
- وفّر إلغاء اشتراك بالعربية: كلمة واحدة مثل «الغاء» تُعالَج آليًا.
وما لا يقوله أحد: إذا اخترت اسم مُرسِل عامًّا مثل INFO أو ALERT فسيُرفض غالبًا. اجعله اسم علامتك التجارية حرفيًا.
التكلفة وكيف تحسب ميزانية الرسائل شهريًا
سعر الرسالة في الخليج يُحسب بالمقطع لا بالرسالة، ويتفاوت حسب البلد والحجم. في السعودية تدور الأسعار عادة في نطاق قروش قليلة للمقطع عند الكميات الكبيرة، وترتفع بوضوح في العقود الصغيرة أو عبر المزودين الدوليين. اطلب دائمًا قائمة أسعار لكل شبحة على حدة لكل دولة تستهدفها؛ الإمارات والكويت وقطر ليست بنفس سعر السعودية.
احسب ميزانيتك بهذه المعادلة البسيطة: عدد المستخدمين النشطين × عدد الرسائل لكل مستخدم شهريًا × عدد المقاطع × سعر المقطع. متجر إلكتروني بـ 5000 طلب شهريًا يرسل عادة ثلاث رسائل لكل طلب (تحقق، تأكيد، توصيل) = 15 ألف رسالة. إن كانت كل واحدة مقطعًا واحدًا فأنت في حدود مريحة؛ وإن صارت مقطعين فقد ضاعفت الفاتورة بلا سبب.
هل يستحق الأمر أصلًا؟ رأيي: نعم للرسائل الحرجة، ولا للتسويق الجماعي. استخدم SMS لرمز التحقق وتأكيد الدفع وتنبيه التوصيل — أشياء لا تتحمل أن تفوت. ووجّه التسويق إلى الإشعارات الفورية داخل التطبيق (Push) لأنها مجانية عمليًا، أو إلى واتساب للأعمال حيث تدفع ثمن المحادثة لا الرسالة.
ولو كنت تربط الرسائل بمسار دفع كامل — تأكيد الشراء ثم إرسال الفاتورة — فراجع بوابات دفع عربية للتطبيقات لتربط الحدثين معًا بدل بناء نظامين منفصلين.
الاختبار والمراقبة والأخطاء التي تكلّف كثيرًا
قبل الإطلاق، اختبر على ثلاث شبكات مختلفة على الأقل: STC وزين وموبايلي في السعودية، أو اتصالات ودو في الإمارات. السلوك يختلف فعلًا، وقد تصل الرسالة سليمة على شبكة ومتأخرة عشر دقائق على أخرى.
لوحة المراقبة التي تحتاجها بسيطة: نسبة التسليم، متوسط زمن الوصول، عدد المحاولات الفاشلة وسببها، والتكلفة اليومية. إن نزلت نسبة التسليم تحت 90% فهناك خطأ في قاعدة الأرقام أو مشكلة عند المزود.
أخطاء رأيتها تتكرر، ويمكنك تجنّبها اليوم:
- إرسال رمز تحقق دون حد أقصى للمحاولات. مهاجم واحد يستنزف رصيدك في دقائق. ضع حدًا: 3 محاولات لكل رقم كل 15 دقيقة.
- نسيان صلاحية الرمز. اجعلها 5 دقائق، واذكر ذلك في نص الرسالة.
- عدم وجود خطة بديلة. إن فشل الإرسال مرتين، حوّل تلقائيًا إلى مزود ثانٍ أو إلى مكالمة صوتية آلية.
- اختبار على رقم المطوّر فقط. جرّب أرقامًا مسجّلة باسم غير سعودي، وأرقامًا زائرة (روميـنغ)، ورقمًا مضافًا حديثًا.
الحيلة التي توفّر ساعات: احتفظ بوضع «محاكاة» في بيئة التطوير يطبع نص الرسالة في السجل بدل إرسالها فعليًا. بهذا تجرّب مئات السيناريوهات بلا تكلفة، ثم تفتح الإرسال الحقيقي في آخر يوم. وللتنسيق بين أعضاء الفريق حول القوالب والصياغات، أفادني ترتيب الأدوار مسبقًا كما في دليل التعاون داخل المشروع.
وأخيرًا: راقب الشكاوى. ارتفاعها المفاجئ يعني أن رسائلك صارت مزعجة، وهذا يهدد اسم المُرسِل نفسه.
خطة تنفيذ في يومين
لو كنت أبدأ اليوم: صباح اليوم الأول لتقديم طلب تسجيل اسم المُرسِل — فهو الأطول انتظارًا. بعد الظهر لكتابة القوالب الأربعة الأساسية وعدّ أحرفها. اليوم الثاني للربط التقني والاختبار على ثلاث شبكات.
ابدأ برسالة واحدة فقط: رمز التحقق. أطلقها، راقب نسبة التسليم أسبوعًا، ثم أضف إشعار الطلب. التوسّع التدريجي يكشف المشكلات وهي صغيرة ورخيصة، لا بعد أن ترسل 20 ألف رسالة مشوّهة.
الأسئلة الشائعة
هل أحتاج اسم مُرسِل مسجّلًا لإرسال رمز تحقق فقط؟
نعم في الغالب. مشغلو الخليج يمرّرون الرسائل التجارية عبر أسماء مُرسِلين مسجّلة فقط، وتُحجب الرسائل القادمة من أرقام عشوائية أو من مسارات دولية غير موثوقة. سجّل اسمًا مطابقًا لسجلك التجاري قبل الإطلاق، واحسب مهلة تتراوح غالبًا بين ثلاثة وعشرة أيام عمل حسب المزود والمشغل.
ما الحد الأقصى لعدد الأحرف في الرسالة العربية؟
سبعون حرفًا في المقطع الواحد لأن العربية تُرسل بترميز UCS-2. إذا تجاوزت هذا الحد فستُقسَّم الرسالة إلى مقاطع بسعة 67 حرفًا لكل مقطع، وتُحاسب على كل مقطع منفصلًا. اجعل هدفك 65 حرفًا كحد أعلى بعد إدخال المتغيرات مثل الاسم ورقم الطلب.
واتساب للأعمال أفضل أم الرسائل النصية للإشعارات؟
الرسائل النصية أفضل لرموز التحقق والتنبيهات الحرجة لأنها تعمل دون إنترنت ودون تطبيق مثبّت. واتساب أفضل للمحادثات والدعم والرسائل الغنية بالصور والأزرار. الخيار العملي لمعظم المشاريع الخليجية: SMS للأمان والتأكيدات، وواتساب للمتابعة والخدمة، وإشعارات التطبيق للتسويق المجاني.
كيف أرسل رسائل عربية دون خبرة برمجية؟
استخدم منصة بناء تدعم ربط واجهات المزودين بالوصف النصي، أو اطلب من مزودك رابط Zapier أو Make جاهزًا. عمليًا تربط حدثًا في قاعدة بياناتك (طلب جديد، دفعة ناجحة) بقالب رسالة، وتحدد الترميز Unicode، ثم تختبر على رقمك. الأمر أقرب إلى إعداد نموذج من كتابة كود.
اقرأْ أيضًا

دعم خرائط عربية في التطبيقات لموقعك الجغرافي
دليل عملي لإضافة خرائط عربية في التطبيقات: اختيار المزوّد، دعم RTL، العنوان الوطني ورقم مكاني، خفض التكلفة، وأذونات الموقع في السوق الخليجي.

الترجمة الفورية في التطبيقات بين العربية والإنجليزية
دليل عملي لتفعيل الترجمة الفورية في التطبيقات بين العربية والإنجليزية: اختيار المحرك، التكلفة، دعم RTL، وأخطاء شائعة تُحرج التطبيقات الخليجية.

تقارير مالية عربية في التطبيقات: دليل التوليد التلقائي
دليل عملي لإنشاء تقارير مالية عربية في التطبيقات بشكل تلقائي: ضبط RTL والخطوط والأرقام، تصدير PDF وExcel، والامتثال الضريبي في الخليج.