مقدمة : 

 

يوفر لارافيل بيئة إرسال بريد إلكتروني مميزة وسهلة جداً عبر إضافة Symfony Mailer , حيث يوفران محركات لإرسال الإيميلات

 عبر البريد الداخلي الخاص بالاستضافة أو بريد Gmail بواسطة SMTP , أو عبر مزودات أخرى مثل :

 Mailgun, Postmark, Amazon SES , و سأشرح في هذا المقال كيفية إرسال بريد الكتروني بواسطة SMTP

 

 

 

لماذا أتعلم إرسال إيميل بواسطة لارافيل :

كمطور و عند تطويرك لأي مشروع سيطلب منك تضمين خدمات البريد الإلكتروني ضمن المشروع , مثلاً في حالة المتجر الإلكتروني , يجب إرسال إيميل للمستخدم باستلام الطلب أو بعرض خاص على بضاعة معينة , 

أو في حالة تطويرك لمدونة سيطلب منك خدمة Newsletter ( الرسائل البريدية ) حيث يصل للمستخدمين رسائل بجديد المدونة والكتير .....

 

 

 

إذاً كيف أبداً : 

 

من ملف .env سيتوجب عليك تعديل الإعدادات بما يتناسب مع المحرك الذي تريد من خلاله إرسال  البريد الالكتروني , كالتالي : 

 

 
MAIL_DRIVER = smtp
// وتعني محرك البريد الالكتروني ( أو الطريقة التي سيتم من خلالها إرسال البريد ) 
MAIL_HOST = smtp.gmail.com
// إستضافة البريد الالكتروني -قد تستخدم استضافتك الخاصة من خلال حصولك على إعدادات ا لبريد 
MAIL_PORT = 587
// منفذ إرسال البريد الالكتروني
MAIL_USERNAME = اسم المستخدم الخاص بالبريد الالكتروني
MAIL_PASSWORD = كلمة المرور 
MAIL_ENCRYPTION = tls
// صيغة التشفير الخاص بالإيميل مثلاً قد تكون (tls أو ssl)

 

سيتوجب عليك بعدها تنفيذ الأمر التالي , لتأخذ التعديلات التي أجريتها على ملف .env مكانها في config/mail.php

 

 
php artisan config:cache

 

 

 

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

 

يتم إرسال الإيميل عبر Mail Facade

الشكل الأساسي لدالة الإرسال هي على الشكل التالي : 

 

 
Mail::send($view, $data, $callback);

 

وهي تستعمل ثلاث بارمترات : 

$view : متغير نصي أو مصفوفة تعبر عن ملف view الذي يحوي الرسالة .

$data : البيانات التي تريد تمريرها لملف view أعلاه .

$callback : عبارة عن دالة تحوي متغيرات خاصة بالإيميل ( كإسم المرسل و المستلم و الموضوع  و النسخة الإضافية الخ.... ) 

 

 

البدء بإرسال البريد الالكتروني : 

 

سننشئ أولاً ملف view  بداخله الرسالة المطلوب إرسالها , وذلك داخل resource/views وسنسميه على سبيل المثال  : mymail.blade.php

ونضغ داخله نص الرسالة مع أي بيانات إخرى نرغب بتمريرها على الشكل التالي : 

 

 
Hi {{$name}} , this is a test message

 

 

سننشئ ملف controller لنقوم من خلاله باستدعاء الدالة السابقة , عن طريق أمر artisan التالي : 

 

 
php artisan make:controller MailController

 

ونكتب داخله دالة لإرسال البريد الإلكتروني : 


 

 
public function sendmail() {
      $data = array('name'=>"Husam");
   
      Mail::send('mymail', $data, function($message) {
         $message->to('[email protected]')->subject
            ('Laravel Test Sending Mail');
         $message->from('[email protected]','Husam Hammad');
      });

	return "Email Sent Success ";
   }

 

كما ننشى مسار في ملف routes/web.php لإرسال البريد : 

 

 
Route::get('/send-test-mail', [MailController::class,'sendmail']);

 

 

وعند الذهاب لمسار send-test-mail على المتصفح سيرسل الإيميل و سيظهر لنا نص : Email Sent Success

 

 

إذاً انتهينا من إرسال البريد . ما التالي ؟ : 

 

في المثال السابق تعرفنا على كيفية إرسال بريد الكتروني بسيط , لكن كمطور لارافيل يحب عليك التعرف إلى خصائص البريد المتقدمة 

مثل استخدام قوالب Markdown الجاهزة و إرسال البريد الالكتروني في الخلفية أو ضمن طابور , 

وهذا ما سنتعرف إليه في مقالات قادمة , أو يمكنك التعرف إليه عبر Laravel Docs بشكل مباشر 

 

 

المراجع :