اذهب إلى المحتوى
  • 0

إرسال بريد إلكتروني في Laravel

Mahmoud Alrashidi

السؤال

Recommended Posts

  • 0

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

MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username عنوان البريد الالكتروني الذي سيقوم بإرسال الرسائل
MAIL_PASSWORD = your-application-specific-password كلمة المرور
MAIL_ENCRYPTION = tls

ثم نقوم بإنشاء متحكم controller ونسميه MailController لإدارة إرسال الرسائل كالتالي:

php artisan make:controller MailController

وهو بدوره بقوم بالتالي:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class MailController extends Controller {
	//التابع الذي سيقوم بإرسال الرسالة
   public function basic_email() {
		//نعرف هنا اسم المرسل
      $data = array('name'=>"firstname lastname");
   
      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('abc@gmail.com'')->subject
            ('Laravel Basic Testing Mail'); //عنوان الرسالة
         $message->from('xyz@email.com','Sender Name'); // عنوان واسم المرسل
      });
		
		//طباعة رسالة تأكيد
      echo "Basic Email Sent. Check your inbox.";
   }
  
}

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السلام عليكم 

يمكنك ارسال بريد الكتروني باستخدام laravel من خلال اتباع الخطوات التالية:

  1. ستقوم بتهيئة البرنامج ليقوم بارسال البريد الالكتروني من خلال ضبط اعدادات البريد الالكتروني في الملف env. كالتالي:
MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls

بالنسبة لكلمة المرور فلن تكون كلمة مرور بريدك الالكتروني وانما يتعين عليك انشاء تطبيق في الgmail ووضع كلمة المرور الخاصة بالتطبيق.

    2. قم بكتابة الامر الاتي: 

php artisan config:cache

    3. بعدها قم بكتابة الامر التالي لإنشاء الكنرولر الخاص بارسال البريد :

php artisan make:controller MailController --plain

   4. بعدها قم بلصق الكود الاتي في الملف MailController 

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class MailController extends Controller {
   public function basic_email() {
      $data = array('name'=>"Virat Gandhi");
   
      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         $message->attach('C:\laravel-master\laravel\public\uploads\image.png');
         $message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
}

الكود عبارة عن ثلاثة دوال كلها تقوم بارسال بريد الكتروني عن طريق الدالة 

()Mail::send

والتي تستقبل ثلاثة عوامل او parameters الاول هو الtemplate او الview الذي سيتم ارساله.

الثاني سيكون هو البيانات التي ستكون موجودة في البريد المرسل والمعامل الثالث سيكون هو الدالة التي يتم استدعائها لارسال البريد الالكتروني. ويتم فيها تحديد موضوع البريد و المرسل والمستقبل والمرفقات.

وكما تلاحظ انه هنالك نوعان من البريد الالكتروني المرسل او طريقتان لإرسال البريد الإلكتروني الاولى هي أن يتم إرسال البريد الإلكتروني في شكل text و الثانيه في شكل HTML ويمكنك أن تجرب الطريقتان لترى الفرق الطريقة الاولى كما في الدالة الاولى والطريقة الثانية كما في الدالتين الثانية والثالثة.

  5. بعدها يجب عليك إنشاء الview الخاص بالبريد الإلكتروني الذي سيتم إرساله في المسار resources/views/ كالتالي:

<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

  6. بعدها يمكنك إضافة الroutes الاتية :

Route::get('sendbasicemail','MailController@basic_email');
Route::get('sendhtmlemail','MailController@html_email');
Route::get('sendattachmentemail','MailController@attachment_email');

  7. يمكنك إرسال البريد من خلال زيارة المسارات الاتية:

   

http://localhost:8000/sendbasicemail

http://localhost:8000/sendhtmlemail

http://localhost:8000/sendattachmentemail

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لمعرفة أي أمر متعلق بإرسال بريد إلكتروني نتوجه للتوثيق الرسمي للارافيل ونبحث عن Mail وسنجد كل الأمور المتعلقة بهذا الأمر من المحركات المدعومة بشكل رسمي من لارافيل أو Drivers وأقصد بالمحركات هي الأدوات أو المكتبات التي من خلالها نستطيع إرسال البريد الإلكتروني بسهولة وبساطة, ومن هذه المحركات Mailgun Driver, SMTP, Postmark and Amazon SES ولكن أغلب هذه المحركات مدفوعة ويمكن الإستفقادة منها في حال كنت تملك مشروع رسمي ولكل واحدة منهم طريقة تفعيل في المشروع موضحة في التوثيق الرسمي.

ولكن عند العمل على مشروع ويكون في وضع التطوير نستخدم أداة تسمى mailtrap فهي توفر خدمة مجانية للتأكد من أن عملية إرسال بريد إلكتروني تعمل بشكل صحيح وشكل البريد المرسل وغيرها من الأمور حسب حاجتك. ويمكن الوصول لهذا المحرك المجاني بالبحث في قوقل عن كلمة mailtrap وفي أول رابط وستجد الموقع, قم بتسجيل حساب جديد به وستجد أن هنالك صندوق الرسائل عند فتحه سجد صفحة تشبه التالي:

screencapture-mailtrap-io-inboxes-447606-messages-2021-02-12-10_27_32.thumb.png.d27215ce7e478ffbc5128c9b5d7a2140.pngبالطبع كل شخص لديه إعداداته الخاصة قم بنسخ الموجود ولصقه في ملف .env لكن في الحقيقة عند إنشاء مشروع لارافيل جديد ستجد أنه يتعامل بشكل مباشر مع mailtrap لذا أنظر إلى الإختلافات الموجودة وإستبدلها بما لديك في صندوق البريد.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...