إنتقل إلى المحتوى الرئيسي

إعداد البريد الإلكتروني / SMTP

يرسل FeedbackPulse رسائل بريد إلكتروني تحويلية متعددة. يُعدّ إعداد البريد الإلكتروني بشكل صحيح أمرًا مهمًا لـ:

  • رسائل الترحيب للمستأجرين الجدد
  • روابط دعوة فريق العمل
  • رسائل إعادة تعيين كلمة المرور
  • التحقق عبر رمز OTP (لنماذج التعليقات)
  • الملخصات اليومية/الأسبوعية
  • التقارير المجدولة
  • تنبيهات الاستخدام
  • إشعارات تغيير الخطة

⚙️ طرق الإعداد

الطريقة الأولى: عبر لوحة الإدارة (موصى بها)

  1. سجّل الدخول بصفتك مشرفًا عامًا
  2. انتقل إلى الإدارة ← الإعدادات ← البريد الإلكتروني
  3. أدخل تفاصيل SMTP الخاصة بك
  4. انقر على إرسال بريد اختباري للتحقق
  5. احفظ الإعدادات

الطريقة الثانية: عبر ملف .env

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="FeedbackPulse"

📮 إعداد كل مزود خدمة

📧 Gmail

MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls

⚠️ مهم: يتطلب Gmail كلمة مرور التطبيق، وليس كلمة المرور العادية.

  1. انتقل إلى أمان حساب Google
  2. فعّل التحقق بخطوتين (مطلوب)
  3. انتقل إلى كلمات مرور التطبيقات ← اختر "Mail" ← أنشئها
  4. استخدم كلمة المرور المكونة من 16 حرفًا التي تم إنشاؤها

🔴 حدود Gmail: 500 رسالة/يوم (شخصي) أو 2,000/يوم (Workspace). غير موصى به للإنتاج.

🔫 Mailgun

MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_mailgun_smtp_password
MAIL_ENCRYPTION=tls
  1. سجّل في Mailgun
  2. أضف نطاقك ← تحقق من سجلات DNS
  3. انتقل إلى Sending ← Domain Settings ← SMTP credentials
  4. انسخ كلمة مرور SMTP

📦 Amazon SES

MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=your_ses_smtp_username
MAIL_PASSWORD=your_ses_smtp_password
MAIL_ENCRYPTION=tls
  1. انتقل إلى AWS SES Console
  2. تحقق من نطاقك
  3. انتقل إلى SMTP Settings ← Create SMTP Credentials
  4. اخرج من وضع sandbox للإنتاج

📨 SendGrid

MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls

💡 ملاحظة: اسم المستخدم هو apikey حرفيًا (وليس بريدك الإلكتروني). كلمة المرور هي مفتاح API الخاص بـ SendGrid.

✉️ Postmark

MAIL_HOST=smtp.postmarkapp.com
MAIL_PORT=587
MAIL_USERNAME=your_postmark_server_api_token
MAIL_PASSWORD=your_postmark_server_api_token
MAIL_ENCRYPTION=tls

🔵 ZOHO Mail

MAIL_HOST=smtp.zoho.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_zoho_password
MAIL_ENCRYPTION=tls

🧪 Mailtrap (للاختبار فقط!)

MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=your_mailtrap_username
MAIL_PASSWORD=your_mailtrap_password
MAIL_ENCRYPTION=tls

⚠️ Mailtrap مخصص للتطوير/الاختبار فقط. يتم التقاط الرسائل في صندوق وارد Mailtrap ولا يتم تسليمها إلى مستلمين حقيقيين.


🧪 اختبار البريد الإلكتروني

عبر لوحة الإدارة

  1. انتقل إلى الإدارة ← الإعدادات ← البريد الإلكتروني
  2. انقر على إرسال بريد اختباري
  3. تحقق من صندوق الوارد

عبر سطر الأوامر

php artisan tinker
Mail::raw('Test email from FeedbackPulse', function ($message) {
$message->to('[email protected]')->subject('SMTP Test');
});

📨 رسائل البريد المُرسلة بواسطة FeedbackPulse

الرسالةمتى يُرسلالمستلم
ترحيبتسجيل مستأجر جديدمشرف المستأجر
دعوة فريق العمليدعو المشرف عضوًا في الفريقالبريد الإلكتروني للمدعو
تغيير الخطةتغييرات الاشتراكمشرف المستأجر
تنبيه تقديم جديداستلام ملاحظات جديدةمشرف/موظف المستأجر
ملخص البريدجدول يومي/أسبوعيمشرف المستأجر
تقرير مجدوليومي/أسبوعي/شهريمشرف المستأجر
تنبيه الاستخدام90%+ من حد الخطةمشرف المستأجر
إعادة تعيين كلمة المروريطلب المستخدم إعادة التعيينالمستخدم الطالب
التحقق من البريدتسجيل جديدالمستخدم الجديد
رمز OTPنموذج تعليقات مع OTPالمستخدم النهائي الذي يقدم تعليقات

🐛 استكشاف أخطاء البريد الإلكتروني وإصلاحها

المشكلةالحل
عدم إرسال الرسائلتحقق من إعدادات SMTP في .env. جرّب MAIL_MAILER=log للاختبار بدون SMTP. تحقق من storage/logs/laravel.log.
الرسائل تصل إلى مجلد الرسائل غير المرغوب فيهاأضف سجلات SPF وDKIM وDMARC إلى DNS الخاص بنطاقك. استخدم مزود SMTP موثوقًا.
"انتهت مهلة الاتصال"قد يكون المنفذ 587/465 محجوبًا من مزود الاستضافة. جرّب منفذًا مختلفًا أو مزودًا آخر.
خطأ Gmail "التطبيقات الأقل أمانًا"استخدم كلمة مرور التطبيق عوضًا عن ذلك. راجع قسم Gmail أعلاه.
تأخر الرسائلإذا كنت تستخدم QUEUE_CONNECTION=database، فتأكد من تشغيل عامل قائمة الانتظار.

⏭️ الخطوات التالية