إرسال رسائل البريد الإلكتروني في Laravel باستخدام Mailables

Amine
30/08/2024

المقدمة

يعتبر إرسال رسائل البريد الإلكتروني من الوظائف الشائعة في تطبيقات الويب، سواء كان ذلك لتأكيد التسجيل، أو إرسال إشعارات، أو تقديم تقارير. يوفر 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 لتحسين التواصل مع المستخدمين وتقديم تجربة مستخدم أفضل.

لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.

التعليقات

اترك تعليقاً