前言
在做一個(gè)通知系統(tǒng)時(shí),業(yè)務(wù)需求,根據(jù)不同場(chǎng)景使用不同的賬戶發(fā)送郵件,laravel默認(rèn)只支持一個(gè)郵箱發(fā)郵件。不滿實(shí)際情況,使用Config::set()方法動(dòng)態(tài)設(shè)置賬戶后,可以成功發(fā)送郵件,再次set無(wú)法再次修改發(fā)件賬戶。
查閱多個(gè)資料的值,需要重新設(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',
],
],
];
接下來(lái)創(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"));
}
}
實(shí)際使用如下:
?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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 在Laravel框架里實(shí)現(xiàn)發(fā)送郵件實(shí)例(郵箱驗(yàn)證)
- Laravel框架實(shí)現(xiàn)發(fā)送短信驗(yàn)證功能代碼
- 使用 laravel sms 構(gòu)建短信驗(yàn)證碼發(fā)送校驗(yàn)功能
- laravel5.4利用163郵箱發(fā)送郵件的步驟詳解
- Laravel中利用隊(duì)列發(fā)送郵件的方法示例
- laravel中短信發(fā)送驗(yàn)證碼的實(shí)現(xiàn)方法