前言
在做一個通知系統(tǒng)時,業(yè)務需求,根據(jù)不同場景使用不同的賬戶發(fā)送郵件,laravel默認只支持一個郵箱發(fā)郵件。不滿實際情況,使用Config::set()方法動態(tài)設置賬戶后,可以成功發(fā)送郵件,再次set無法再次修改發(fā)件賬戶。
推薦教程:《laravel教程》
方法如下:
創(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 AppMail; use IlluminateSupportFacadesMail; 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)推薦:《PHP教程
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END