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

السؤال

نشر

قمت بإعداد مشروعي ليستعمل mail service وهو يعمل ويرسل رسائل البريد الإلكتروني بدون مشكلة، لكني أريد في بعض الحالات أن أستعمل خدمة بريد mail service مختلفة عن المعُدة في المشروع.

هل يمكن إستعمال أكثر من خدمة بريد mail service في مشروع لارافيل Laravel واحد؟ أم يجب أن أستعمل حزم خارجية لهذا الأمر؟

Recommended Posts

  • 1
نشر

كطريقة تقليدية جدا يمكنك اعادة اعداد البريد كل مرة تريد فيها تبديل تلك التي تعدها في المشروع. استعمل التابع الثابت set عن الواجهة Config لتعيين قيمة جديدة لمفتاح معين:

/**
* ارسال رسالة بريد الكتروني باستخدام خدمة معينة
* @return void
*/
public function sendMail()
{
 
 
   // شيفرة ارسال الرسالة
}


/**
* ارسال رسالة بريد الكتروني باستخدام خدمة غير الاولى
* @return void
*/
public function sendMailUsingOtherService()
{
   $this->switchMailer();
   

   // شيفرة ارسال الرسالة
}

/**
* اعادة اعداد خدمة البريد 
* @return void
*/
private function switchMailer()
{
    Config::set('mail.encryption','ssl'); // طريقة تشفير جديدة
    Config::set('mail.host','smtps.example.com'); // مستضيف خدمة جديد
    Config::set('mail.port','465'); // منفذ جديد
    Config::set('mail.username','youraddress@example.com'); // اسم مستخدم جديد
    Config::set('mail.password','password'); // كلمة مرور جديدة
    Config::set('mail.from',  ['address' => 'JhonDoe@gmail.com' , 'name' => 'JhonDoe']);

    Artisan::call('cache:clear'); //  قد تكون هاته الخطوة ضرورية ايضا لاعادة التقاط التحديثات
}

اما كحل يلائم النسخ التي هي اكبر من النسخة 7.x فيوجد التابع mailer الذي يمكن من خلاله تحديد خدمة البريد التي تستهدفها بارسالك رسالة معينة:

Mail::mailer('my_mailer')
    ->to($user())
    ->send(new MyMailableClass());

راجع ايضا 

التعامل مع البريد الإلكتروني (Mail) في Laravel

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...