إرسال رسائل البريد الإلكتروني في Laravel باستخدام Mailables
المقدمة
يعتبر إرسال رسائل البريد الإلكتروني من الوظائف الشائعة في تطبيقات الويب، سواء كان ذلك لتأكيد التسجيل، أو إرسال إشعارات، أو تقديم تقارير. يوفر Laravel نظامًا قويًا وسهل الاستخدام لإرسال رسائل البريد الإلكتروني باستخدام ما يُعرف بـ Mailables. يتيح لك Mailable إنشاء قوالب بريدية، تخصيص الرسائل، وإرسالها بسهولة عبر مختلف موفري خدمة البريد. في هذا الدليل، سنتعلم كيفية إعداد نظام البريد الإلكتروني في Laravel وإرسال رسائل البريد الإلكتروني باستخدام Mailables.
الخطوة 1: إعداد إعدادات البريد الإلكتروني في Laravel
أول خطوة لإرسال رسائل البريد الإلكتروني في Laravel هي إعداد إعدادات البريد الإلكتروني في ملف .env
. يحتوي ملف .env
على معلومات الاتصال بخادم البريد الذي ترغب في استخدامه. فيما يلي مثال على إعدادات البريد باستخدام خدمة Mailtrap
، وهي خدمة مجانية للاختبار:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_mailtrap_username
MAIL_PASSWORD=your_mailtrap_password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"
قم بتحديث إعدادات MAIL_USERNAME
وMAIL_PASSWORD
باستخدام بيانات الاعتماد الخاصة بك في Mailtrap
أو استخدم إعدادات بريد إلكتروني أخرى إذا كنت تستخدم مزودًا مختلفًا مثل Gmail
، SendGrid
، أو Amazon SES
.
الخطوة 2: إنشاء Mailable جديد
لإرسال بريد إلكتروني، نحتاج إلى إنشاء Mailable جديد. Mailables هي فئة Laravel تمثل رسالة بريد إلكتروني وتحتوي على طريقة لتكوين الرسالة وطريقة لإنشاء محتوى الرسالة. لإنشاء Mailable جديد، استخدم الأمر التالي في سطر الأوامر:
php artisan make:mail WelcomeEmail
سيقوم هذا الأمر بإنشاء ملف جديد باسم WelcomeEmail.php
في مجلد app/Mail
. يمكنك فتح هذا الملف وتخصيصه لتحديد محتوى البريد الإلكتروني.
الخطوة 3: تخصيص Mailable
افتح ملف WelcomeEmail.php
وقم بتحديث طريقة build()
لتكوين الرسالة وتحديد قالب العرض (View) الذي سيتم استخدامه لإنشاء محتوى البريد الإلكتروني. يمكنك استخدام القوالب الجاهزة مثل markdown
أو إنشاء قالب مخصص. لنقم بإنشاء قالب مخصص:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct($user)
{
$this->user = $user;
}
public function build()
{
return $this->from('[email protected]')
->subject('مرحباً بك في موقعنا!')
->view('emails.welcome')
->with([
'userName' => $this->user->name,
]);
}
}
في هذا المثال، نستخدم قالب Blade باسم emails.welcome
ونمرر اسم المستخدم كمعامل. تأكد من إنشاء القالب في الخطوة التالية.
الخطوة 4: إنشاء قالب البريد الإلكتروني باستخدام Blade
لإنشاء قالب بريد إلكتروني، انتقل إلى مجلد resources/views
وقم بإنشاء مجلد جديد باسم emails
، ثم قم بإنشاء ملف جديد داخل هذا المجلد باسم welcome.blade.php
. أضف الكود التالي إلى القالب:
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>مرحباً بك في موقعنا</title>
</head>
<body>
<h1>مرحباً، {{ $userName }}!</h1>
<p>نحن سعداء بانضمامك إلى موقعنا. نأمل أن تستمتع بتجربتك معنا.</p>
</body>
</html>
هذا القالب يستخدم توجيه Blade لإدراج اسم المستخدم في الرسالة. يمكنك تخصيص القالب لتناسب احتياجاتك.
الخطوة 5: إرسال البريد الإلكتروني
لإرسال البريد الإلكتروني، يمكنك استخدام Mailable الذي أنشأته في أي جزء من تطبيقك. على سبيل المثال، يمكنك إرسال البريد الإلكتروني عند تسجيل المستخدم الجديد في المتحكم RegisterController
أو في وظيفة تسجيل المستخدم:
use App\Mail\WelcomeEmail;
use Illuminate\Support\Facades\Mail;
// داخل متحكم أو وظيفة
public function register(Request $request)
{
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
// إرسال البريد الإلكتروني
Mail::to($user->email)->send(new WelcomeEmail($user));
return redirect('/home')->with('success', 'تم تسجيلك بنجاح وتم إرسال بريد إلكتروني ترحيبي إليك.');
}
يستخدم هذا الكود فئة Mail
لإرسال البريد الإلكتروني إلى عنوان المستخدم المسجل حديثًا.
الخطوة 6: اختبار إرسال البريد الإلكتروني
لتجربة إرسال البريد الإلكتروني، يمكنك تشغيل خادم التطوير المحلي باستخدام الأمر التالي:
php artisan serve
ثم افتح المتصفح وزر صفحة التسجيل في التطبيق. بعد التسجيل، يجب أن تتلقى رسالة بريد إلكتروني ترحيبية في صندوق الوارد الخاص بك (إذا كنت تستخدم Mailtrap، تحقق من صندوق الوارد في حساب Mailtrap).
الخاتمة
إرسال رسائل البريد الإلكتروني باستخدام Mailables في Laravel هو عملية سهلة ومرنة تتيح لك إنشاء رسائل بريد إلكتروني مخصصة بسهولة. من خلال هذا الدليل، تعلمت كيفية إعداد إعدادات البريد، إنشاء وإرسال رسائل البريد الإلكتروني باستخدام Mailable. استمر في استكشاف ميزات البريد الإلكتروني في Laravel لتحسين التواصل مع المستخدمين وتقديم تجربة مستخدم أفضل.
لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.
اترك تعليقاً