Laravel6 優(yōu)雅的切換發(fā)件賬戶

Laravel6 優(yōu)雅的切換發(fā)件賬戶

前言

在做一個通知系統(tǒng)時,業(yè)務需求,根據(jù)不同場景使用不同的賬戶發(fā)送郵件,laravel默認只支持一個郵箱發(fā)郵件。不滿實際情況,使用Config::set()方法動態(tài)設置賬戶后,可以成功發(fā)送郵件,再次set無法再次修改發(fā)件賬戶。

推薦教程:《laravel教程》

方法如下:

創(chuàng)建郵箱賬戶配置文件/config/my_emails.php

<?php return [  &#39;emails&#39; =>?[ ??'a'?=&gt;?[ ???'email'?=&gt;?'a@188.com', ???'password'?=&gt;?'專屬客戶端密碼', ???'smtp'?=&gt;?'smtp.188.com', ???'port'?=&gt;?'465', ???'encryption'?=&gt;?'ssl', ???'name'?=&gt;?'靚仔A', ??], ??'b'?=&gt;?[ ???'email'?=&gt;?'b@188.com', ???'password'?=&gt;?'專屬客戶端密碼', ???'smtp'?=&gt;?'smtp.188.com', ???'port'?=&gt;?'994', ???'encryption'?=&gt;?'ssl', ???'name'?=&gt;?'靚女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-&gt;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(&#39;a&#39;); Mail::to(&#39;boy@163.com&#39;)->send(new?TestMail()); MailHelper::setAccount('b'); Mail::to('girl@163.com')-&gt;send(new?TestMail());

總結(jié)

到此這篇關(guān)于Laravel6.18.19如何優(yōu)雅的切換發(fā)件賬戶的文章就介紹到這了

相關(guān)推薦:《PHP教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享