مؤخرًا كنت اعمل على برمجية، وهذه البرمجية تحتوي على الكثير من الوظائف التي تتطلب ارسال رسالة إلى البريد الإلكتروني الخاص بالمستخدم والتي بدورها تحتوي على معلومات قد تهم هذا المستخدم، فكانت أعظم مشكلاتي هي ارسال بريد من مساحة عملي (local) إلى صندوق البريد للمستلم (inbox)، ولكن هذا بالتأكيد صعب جدًا من ناحية الإعداد و دون الحصور على SMTP، وبالغالب للحصول على SMTP تحتاج لدفع اشتراك شهري لمزود خدمة SMTP. بعد قيامي بالبحث قليلًا وجدت هذه الخدمة الرائعة Mailtrap خدمة والتي تقدم لك امكانية الحصول على SMTP مُزيف ومجاني بحيث يستقبل جميع الرسائل التي يتم ارسالها من البرمجية لاختبارها ومشاهدتها على أرض الواقع. Mailtrap خدمة

أولًا ماهو SMTP؟

كلمة SMTP اختصار لجملة Simple Mail Transfer Protocol (بروتوكول إرسال البريد البسيط)، وهو برتوكول يستخدم لإرسال رسائل البريد الإلكتروني بين الخوادم بحيث يستطيع المستخدم استقبالها بواسطة بروتوكول POP وهو اختصار لجملة Post Office Protocol (بروتوكول مكتب البريد)، ويستطيع ايضًا العميل إرسال الرسائل إلى الخادوم باستخدام هذا البروتوكول.

خلاصة الموضوع: هذا البرتوكول يستخدم لإرسال رسائل البريد الإلكتروني؛ وقد أقوم بشرح البرتوكولات المستخدمة لإرسال رسائل البريد الإلكتروني واستقبالها، ومميزاتها، والفروقات في موضوع أخر.

ثانيًا مالحاجة من إرسال بريد الكتروني من برمجيتي؟

من الملاحظ استخدام كثير من المواقع والتطبيقات البريد الإلكتروني كوسيلة للتواصل مع العميل أو المٌستخدم أو كوسيلة لجعل النظام يتواصل مع العميل أو المستخدم وذلك لضمان الأمان وحماية المعلومات، فالمستخدم مثلًا قد فقد كلمة المرور الخاصة بحسابه ويريد استرجاعها، أو ان الموقع يتطلب التسجيل ببريد إلكتروني صحيح لإثبات ان المُسجل إنسان وليس (BOT)، أو لإرسال التقارير أو الفواتير أو غيرها، فبالتأكيد أنسب طريقة هي استخدام البريد الإلكتروني لتوفير هذه الاحتياجات.

ثالثًا ماهو Mailtrap وماهي استخداماته؟

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

Mailtrap خدمة
Mailtrap خدمة SMTP مجانية لإختبار الرسائل

مميزات واستخدامات Mailtrap

  1. لن تزعج المستخدمين الحقيقين عن طريق الخطأ. (لأن Mailtrap يقوم بتوجيه جميع الرسائل الى صندوق وارد مزيف).
  2. اختبار الكود أو التصميم الخاص بالرسالة (HTML) لأغلب خدمات وبرامج البريد الإلكتروني.
  3. مشاركة رسائل الاختبار مع فريق التطوير.
  4. يمكن اعادة توجيه الرسائل إلى الأشخاص الذين يحتاجونها.
  5. إعداد سريع وسهل.

رابعًا كيف أحصل على الخدمة

كما ذكرت سلفًا فالخدمة مجانية ويمكنك التسجيل بها من خلال الدخول إلى Mailtrap.io ثم اتباع الخطوات التالية للتسجيل:

أ) بعد الدخول للموقع قم بالضغط على زر Sign Up الموجود بالقائمة العلوية على اليمين.

ب) يوجد ثلاثة خيارات للتسجيل بحيث يمكنك التسجيل تلقائيًا باستخدام حساب Google أو حساب Github أو باستخدام بريدك الإلكتروني.

و أظن ان طرق التسجيل واضحة جدًا ولا تحتاج إلى شرح.

ملاحظة: في حال سجلت بإستخدام البريد الإلكتروني ستصلك رسالة تفعيل (قد تجدها في البريد الغير مرغوب به).

خامسًا كيف أستخدم الخدمة؟

بعد التسجيل بالخدمة والدخول إلى حسابك ستجد قائمة بصناديق البريد المتاحة بحسابك كما بالصورة التالية:

من هذه القائمة قم بالضغط على (Demo inbox) وسيكون صندوق البريد هذا هو المساحة التي سنعمل على ربطها ببرمجيتنا لإختبار رسائل البريد الإلكتروني، عند الدخول إلى صندوق البريد (Demo Index) ستشاهد مايلي:

بالصورة اعلاه نلاحظ وجود ثلاثة قوائم تحت قائمة SMTP Settings (اعدادات SMTP):

  1. SMTP: وهي معلومات بروتوكول SMTP التي نحتاجها لعملية الربط.
  2. POP3: وهي معلومات بروتوكول POP3 التي قد نحتاجها لعملية الربط.
  3. Integrations: وهي شرح لكيفية الربط، بحيث يمكنك ان تقوم بإختيار منصة العمل التي تستخدمها من خلال القائمة؛ في هذا الدرس سوف نستخدم Native PHP (لن نستخدم منصة).

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

سادسًا مثال عملي

أ) المتطلبات لهذا المثال:

  • سيرفر محلي (Local Server) وانصح باستخدام XAMPP لمستخدمي ال Windows. (تنزيل)
  • مكتبة PhpMailer او Pear وهي مكتبة تسمح لنا بارسال الرسائل عبر بروتوكول SMTP. في هذا المقال سأستخدم كلاس بسيط لعمل اتصال مع SMTP. (تنزيل)

ب) سأقوم بعمل ملف يسمى sendmail.php، وسأقوم باستدعاء الكلاس بداخله Mail.php، ثم المباشرة بالاعداد لإرسال البريد الالكتروني.

<?php
require('Mail.php');

// انشاء كائن من نوع Mail
$mail = new EMail();

// الاعدادات
$mail->Server = 'smtp.mailtrap.io';
$mail->Port = '2525';
$mail->Username = 'e7922f1b14baec';
$mail->Password = '91f618ff2a9c7a';

// معلومات المستقبل والرسالة
$mail->SetFrom("[email protected]", "Mohammed A.");
$mail->AddTo("[email protected]", "Mohammed A. Alzard");
$mail->Subject = "Welcome to the world";
$mail->Message = "Welcome Mohammed.";

// ارسال الرسالة
$success = $mail->Send();

if ($success) {
    echo 'Email has been sent.';
} else {
    echo 'ERROR.';
}

قمنا بوضع اعدادات SMTP التي حصلنا عليها من الموقع

ملاحظة: $mail هو Object من الكلاس EMail وما ييلي الرمز -> هو متغيرات الكلاس العامة او الوظائف المتاحة.

عند عمل اختبار للسكربت من خلال التوجه للمتصفح وفتح الرابط/ http://127.0.0.1/sendmail.php ستكون النتيجة كالأتي:

كما نلاحظ فقد تم ارسال الرسالة بنجاح .. ماذا الأن؟

ج) التحقق من صندوق الوارد (Demo Inbox)

الخلاصة

يوفر لنا Mailtrap بيئة آمنة لإختبار رسائل البريد الإلكتروني التي قد يتلقاها مُستخدم البرمجية دون ازعاج المستخدم الأساسي بالرسائل التجريبية. ويوفر Mailtrap امكانية ربطه مع أي برمجية بأي لغة برمجة كونه يقدم لنا خادوم SMTP مُزيف وآمن.

اما عن SMTP فهو بروتوكول يستخدم لإرسال البريد الإلكتروني بين الخوادم، أو من المستخدم (العميل) إلى الخادوم، دون الحاجة للقيام بإعدادات معقدة.

مصنفة في:

الموسومة في:

, , , , ,