Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

كيفية إرسال رسائل نصية عبر PHP

by
Difficulty:BeginnerLength:LongLanguages:

Arabic (العربية/عربي) translation by Lara AbuKhatro (you can also view the original English article)

انتشرت الرسائل النصية على نطاق واسع في جميع أنحاء العالم -- إلى درجة أن عدداً متزايداً من تطبيقات الويب قد دمج خدمة الرسائل القصيرة لإعلام المستخدمين بالأحداث و المبيعات أو القسائم مباشرة من خلال أجهزتهم المحمولة.

في هذا البرنامج التعليمي، سوف نغطي أساسيات إرسال الرسائل النصية عبر PHP.


نظرة عامة

إرسال رسالة نصية SMS في الواقع سهل جداً.

يرد أدناه مخطط مبسط يوضح كيفية إرسال رسالة من تطبيق الويب إلى جهاز لاسلكي.

سوف نحلل هذا الأمر -- في كل مرة:

  • تتألف الرسالة باستخدام تطبيق ويب التي يتم تخزينها و تنفيذها في خادم HTTP ومن ثم إرسالها عبر الإنترنت ("the cloud") كرسالة بريد إلكتروني.
  • تستلم بوابة خدمة الرسائل القصيرة البريد الإلكتروني، والتي تقوم بتحويل الرسالة من رسالة بريد إلكتروني إلى رسالة SMS.
  • ثم يتم تسليم رسالة SMS إلى مركز خدمة الرسائل القصيرة، الذي يعتبر بمثابة خادم يوجه البيانات إلى أجهزة محمولة محددة.
  • تنتقل الرسالة في النهاية عبر الشبكة اللاسلكية إلى المستلم.

تحتوي معظم الشبكات اللاسلكية على بوابة خدمة الرسائل القصيرة والتي يمكن من خلالها إرسال رسائل البريد الإلكتروني كرسائل نصية إلى الهاتف المحمول. هذا جميل، لأنه، من وجهة نظر مطور، فهو عموماً مجاناً ــــ لكن بالطبع ليس خدمة مجانية للمستخدم النهائي. لا تزال الرسوم تسري على مستلم الرسالة و سيتم احتساب الرسائل المرسلة عبر البريد الإلكتروني كرسالة نصية غير متصلة بالشبكة.


البريد الالكتروني إلى الرسائل القصيرة

لإرسال رسالة نصية قصيرة (SMS) عبر البريد الإلكتروني، فلن تحتاج عموماً إلا إلى شيئين:

  • رقم الهاتف أو معرف فريد للهاتف المحمول الذي تريد الوصول إليه.
  • و اسم نطاق الشبكة اللاسلكية (يمكن العثور على العديد منها في قائمة البريد الإلكتروني إلى عناوين خدمة الرسائل النصية القصيرة).

يمكن اتباع الاتفاقية التالية لمعظم الناقلين:

phoneNumber هو رقم هاتف الجهاز المحمول لإرسال الرسالة إليه، و domainName.com هو عنوان بوابة خدمة الرسالة النصية القصيرة الخاصة بالشبكة.

لإرسال نص إلى السيد. مثال، يمكنك أن تضيف ببساطة 3855550168x@vtext.com إلى البريد الإلكتروني لأي عميل، اكتب رسالة واضغط إرسال. سيؤدي هذا إلى إرسال رسالة نصية إلى رقم الهاتف 0168-555 (358) 1+ على الشبكة اللاسلكية Verizon.

على سبيل المثال، سأرسل رسالة نصية إلى نفسي باستخدام جيميل.

عندما يستلم هاتفي الرسالة، يجب أن تبدو هكذا:

رائع جداً!


وظيفة بريد PHP

فلنأخذ الأمور خطوة للأمام. باستخدام بوابة خدمة الرسائل النصية القصيرة SMS، يمكننا إرسال رسالة نصية عبر إيميل باستخدام وظيفة بريد PHP. وظيفة البريد لها التوقيع التالي:

يمكنك قراءة المزيد عنه هنا.

  • to$ يحدد المستلم أو مستلمي الرسالة. و تتضمن أمثلة صحيحة:

    • user@example.com
    • user1@example.com, user2@example.com
    • <User <user@example.com
    • User1 <user1@example.com>, User2 User2 <user2@example.com>
  • subject$ غنية عن التفسير، لا بد أنها سلسلة تحتوي على الموضوع المطلوب. ومع ذلك، لا تتطلب SMS موضوعاً.
  • message$ هي الرسالة التي ستسلم. كما ورد في كتيب PHP، "يجب أن يفصل كل سطر ب LF (\n) ينبغي أن لا تزيد الأسطر عن 70 حرف."

لتكرار الوظيفة السابقة، يمكننا كتابة رمز PHP التالي:


توجيه اختبار

دعونا نجري اختباراً عبر PHP لنتأكد من إعداد كل شيء بشكل صحيح و أن وظيفة البريد سوف ترسل فعلياً رسالة نصية. باستخدام الرمز التالي، يمكننا إجراء:

عندما يستلم هاتفي الرسالة، فإنه يبدو كالتالي:

إذا ظهرت لك رسالة خطأ، فارجع إلى قسم استكشاف الأخطاء و إصلاحها.

كما ترون في الصورة أعلاه، تظهر الرسالة أنها من جيميل. و ذلك لأنني أوجه كل رسائلي الصادرة من خادمي المحلي عن طريق تلك الخدمة. للأسف، وقت كتابة هذه السطور، لقد فشلت في تغيير ترويسة From لتعكس نموذجاً بديلاً. يبدو أن ترويسات البريد الإلكتروني قد تم تجريدها و استبدالها بترويسات أعدتها بوابة خدمة الرسائل النصية القصيرة SMS. إذا كان هناك أي شخص يعرف الحل، من فضلك اترك تعليقاً ودعنا نعلم بذلك!


إضافة قابلية الاستخدام

الترميز

مع الأساسيات الاستثنائية، فلنأخذ هذه الفكرة من واجهة المستخدم. سنقوم أولاً بإعداد نموذج بسيط:

النمط

و بعد ذلك سنضيف بعض CSS:

و هذا يعطينا الشكل البسيط التالي:


البرنامج النصي

الجزء الأكثر أهمية لهذا هو نص PHP. سنقوم بكتابة بعض الشيء من الرمز الآن:

  • يتحقق النص البرمجي أولاً لمعرفة ما إذا كان النموذج قد تم إرساله أم لا.
  • إذا كان الجواب نعم، فإنه يتحقق لمعرفة ما إذا تم إرسال رقم الهاتف، الناقل، و متغيرات خدمة الرسائل النصية القصيرة. و هذا مفيد في الحالة التي قد يكون فيها أكثر من نموذج على الصفحة.
  • إذا كان رقم الهاتف، الناقل و خدمة رسائل نصية قصيرة متوفرة و رقم الهاتف و الناقل ليسا فارغين، فإنه لا بأس بمحاولة إرسال الرسالة.
  • يجب أن تكون وسيطة الرسالة في وظيفة البريد 70 حرف في الطول لكل سطر. يمكننا أن نقسم الرسالة إلى 70 حرف باستخدام وظيفة wordwrap.
  • يتم ربط رقم الهاتف و الناقل ثم يتم إرسال الرسالة باستخدام وظيفة البريد.
  • في حال كانت البيانات ناقصة أو لا يمكن التحقق من صحتها، فإن البرنامج النصي لا يعود ببساطة بجميع المعلومات التي تم إرسالها.
  • وأخيراً، يعود البريد بقيمة منطقية تشير إلى ما إذا كان الإرسال ناجحاً أم لا. يتم تخزين القيمة في result$ في حال كنت بحاجة للتحقق من أن الرسالة في الواقع قد أرسلت.

ملاحظة: تقوم طريقة البريد فقط بإعلام ما إذا كانت الرسالة قد أرسلت أم لا. و هي لا توفر طريقة للتحقق لمعرفة ما إذا استلم ملقم المستلم أو صندوق البريد الرسالة بنجاح. 


الكود النهائي


استكشاف الأخطاء و إصلاحها

خطأ Localhost

للاستفادة من وظيفة البريد ، يجب أن يكون لديك خادم بريد قيد التشغيل. إذا كنت تعمل على مضيف ويب، فأنت على الأرجح بوضع آمن. ولكن إذا كنت غير متأكد، أوصي بالتحدث إلى مسؤول. و ينطبق هذا أيضاً على الآلات الشخصية. حتى إذا كانت لديك أخطاء مثل..

...سيجب عليك تثبيت و تكوين خادم البريد. هذا خارج نطاق هذا البرنامج التعليمي. مع ذلك، إذا كنت تعمل على جهازك المحلي، الانتقال إلى شيء مثل XAMPP قد يحل هذه المشكلة. بدلاً من ذلك، حاول تثبيت Mercury Mail إلى جانب WAMP، MAMP أو على نظام LAMP (أو SAMP أو OAMP، إلخ.) (هناك الكثير من 'AMPS').

PHPMailer

خيار آخر (وهو الأسلوب الذي أفضله) وهو استخدام PHPMailer و فيما يلي مثال على كيفية استخدام PHPMailer للاتصال بملقم SMTP في جيميل و إرسال الرسالة.

استخدامه بسيط مثل إدراج فئة في البرنامج النصي الخاص بك.

ينبغي طباعة شيء على غرار ما يلي:

قد يستغرق الأمر أكثر قليلاً لإعداد الاتصال تبعاً لحالتك. إذا كنت تخطط لاستخدام جيميل، فقد توفر جوجل معلومات حول الاتصال information on connecting


الخاتمة

هناك عدد لا يحصى من الأساليب لإنجاز مهمة إرسال الرسائل القصيرة SMS من خلال تطبيق ويب. هذا الأسلوب يُعنى بانخفاض حجم الرسائل القصيرة (على الأرجح أقل من 1000 رسالة شهرياً) و مطورين يسعون إلى الحصول على الخبرة بدون التفرع النقدي. تشمل خيارات أخرى:

  • استخدام مزود بوابة الرسائل القصيرة

    • سيؤدي إجراء بحث جوجل Google search إلى عرض الكثير من الخيارات.
    • يشمل معظم مزودي بوابة الرسائل القصيرة API لإرسال الرسائل عبر تطبيق ويب.
    • يمكنك عادة الاشتراك في الخدمة يسعر معقول، على افتراض أنك كنت تخطط لإرسال ما لا يقل عن 1000 رسالة نصية شهرياً.
    • يمكنك استئجار رقم كود قصير short code number.
  • باستخدام مودم GSM

    • يمكن أن تكون هذه الطريقة مكلفة و بطيئة للقيام بذلك، حيث أنه يجب عليك شراء مودم و عمل تعاقد مع شبكة لاسلكية
    • سيجب عليك أيضاً استخدام مجموعة أوامر AT (Hayes) command set.
  • استخدم اتصال مباشر بشبكة لاسلكية، الأمر الذي سيتطلب تفاوض قوي وكثير من المال.

هذا البرنامج التعليمي ليس بأي شكل من الأشكال استعراض شامل لكيفية إرسال رسائل نصية ب PHP; لكن ينبغي البدء! آمل أن يكون هذا البرنامج التعليمي قد حقق الفائدة لك. شكراً جزيلاً لقراءتك!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.