前言
在做一个通知系统时,业务需求,根据不同场景使用不同的账户发送邮件,laravel默认只支持一个邮箱发邮件。不满实际情况,使用Config::set()方法动态设置账户后,可以成功发送邮件,再次set无法再次修改发件账户。
查阅多个资料的值,需要重新设置SwiftMailer。
方法如下:
创建邮箱账户配置文件/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如何优雅的切换发件账户的文章就介绍到这了,更多相关Laravel6.18.19切换发件账户内容请搜索站长技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长技术!
今天看到个不错的网页播放器,感觉不错,大家可以测试 我写的一个播放器网页: ...
首先到这里下载其源码。里面东西挺多的,我们基本上可以把它放到两个文件夹就是...
由于固态驱动器(SSD)的速度比传统的硬盘驱动器(HDD)快得多,并且价格越来越便宜...
本文实例为大家分享了vue实现按钮切换图片的具体代码,供大家参考,具体内容如下...
MFC项目在vs2017编译正常无报错,但是升级vs2019后一打开项目就报如下错误。 项...
在大三的时候,一直就想搭建属于自己的一个博客,但由于各种原因,最终都不了了...
目录 1. C语言文件接口(库函数) 1.1 fopen 1.2 fclose 1.3 fread 1.4 fwrite 1.5...
目录 读者基础 ?微服务架构梳理 https://www.coder4.com/homs_online/ ? ? 读者...
本文实例为大家分享了javascript实现倒计时提示框的具体代码,供大家参考,具体...
这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言! 测试循环前数组是...