🔺 شرح Laravel

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

إعداد البريد

اضبط بيانات SMTP في .env:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_FROM_ADDRESS="hello@myapp.com"
MAIL_FROM_NAME="${APP_NAME}"

💡 للتطوير، خدمة Mailtrap تلتقط الرسائل دون إرسالها فعليًّا — مثالية للاختبار.

إنشاء صنف Mailable

php artisan make:mail WelcomeMail
<?php
namespace App\Mail;

use Illuminate\Mail\Mailable;

class WelcomeMail extends Mailable
{
    public function __construct(public string $name) {}

    public function build()
    {
        return $this->subject('أهلًا بك')
                    ->view('emails.welcome');
    }
}

قالب البريد (Blade)

{{-- resources/views/emails/welcome.blade.php --}}
<h1>مرحبًا {{ $name }}</h1>
<p>شكرًا لانضمامك إلى منصّتنا!</p>

الإرسال

<?php
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeMail;

Mail::to($user->email)->send(new WelcomeMail($user->name));

الإرسال في الخلفية (Queue)

إرسال البريد بطيء — أرسله في طابور حتى لا ينتظر المستخدم:

<?php
Mail::to($user->email)->queue(new WelcomeMail($user->name));

أو اجعل الـ Mailable نفسه قابلًا للجدولة بتطبيق ShouldQueue. ثم شغّل العامل:

php artisan queue:work

أخطاء شائعة

  • إرسال البريد بشكل متزامن في طلبات حسّاسة للسرعة بدل الطابور.
  • نسيان ضبط MAIL_* فتفشل الرسائل بصمت.

🎯 التالي: معالجة الأحداث (Events).