前言
在做一個通知系統(tǒng)時,業(yè)務(wù)需求,根據(jù)不同場景使用不同的賬戶發(fā)送郵件,laravel默認只支持一個郵箱發(fā)郵件。不滿實際情況,使用Config::set()方法動態(tài)設(shè)置賬戶后,可以成功發(fā)送郵件,再次set無法再次修改發(fā)件賬戶。
查閱多個資料的值,需要重新設(shè)置SwiftMailer。
方法如下:
創(chuàng)建郵箱賬戶配置文件/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',
],
],
];
接下來創(chuàng)建切換助手類
?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());
總結(jié)
到此這篇關(guān)于Laravel6.18.19如何優(yōu)雅的切換發(fā)件賬戶的文章就介紹到這了,更多相關(guān)Laravel6.18.19切換發(fā)件賬戶內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 在Laravel框架里實現(xiàn)發(fā)送郵件實例(郵箱驗證)
- Laravel框架實現(xiàn)發(fā)送短信驗證功能代碼
- 使用 laravel sms 構(gòu)建短信驗證碼發(fā)送校驗功能
- laravel5.4利用163郵箱發(fā)送郵件的步驟詳解
- Laravel中利用隊列發(fā)送郵件的方法示例
- laravel中短信發(fā)送驗證碼的實現(xiàn)方法