前言
在做一個通知系統時,業務需求,根據不同場景使用不同的帳戶發送郵件,laravel預設只支援一個郵箱發送郵件。不滿實際情況,使用Config::set()方法動態設定帳戶後,可以成功傳送郵件,再次set無法再次修改寄件帳戶。
推薦教學:《Laravel教學》
#方法如下:
建立郵箱帳戶設定檔/config/my_emails.php
<?php return [ 'emails' => [ 'a' => [ 'email' => 'a@188.com', 'password' => '专属客户端密码', 'smtp' => 'smtp.188.com', 'port' => '465', 'encryption' => 'ssl', 'name' => '靓仔A', ], 'b' => [ 'email' => 'b@188.com', 'password' => '专属客户端密码', 'smtp' => 'smtp.188.com', 'port' => '994', 'encryption' => 'ssl', 'name' => '靓女b', ], ], ];
接下來建立切換助手類別
<?php namespace App\Mail; use Illuminate\Support\Facades\Mail; class MailHelper { public static function setAccount($accountName) { $transport = new \Swift_SmtpTransport( config("my_emails.emails.{$accountName}.smtp"), config("my_emails.emails.{$accountName}.port"), config("my_emails.emails.{$accountName}.encryption") ); $transport->setUsername(config("my_emails.emails.{$accountName}.email")); $transport->setPassword(config("my_emails.emails.{$accountName}.password")); $mailer = new \Swift_Mailer($transport); Mail::setSwiftMailer($mailer); Mail::alwaysFrom(config("my_emails.emails.{$accountName}.email"), config("my_emails.emails.{$accountName}.name")); } }
實際使用如下:
<?php MailHelper::setAccount('a'); Mail::to('boy@163.com')->send(new TestMail()); MailHelper::setAccount('b'); Mail::to('girl@163.com')->send(new TestMail());
總結
到此這篇關於Laravel6.18.19如何優雅的切換發件帳戶的文章就介紹到這了
##相關推薦:《PHP教學
以上是Laravel6 優雅的切換寄件帳戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!