Laravel6.18.19如何优雅的切换发件账户


Posted in PHP onJune 14, 2020

前言

在做一个通知系统时,业务需求,根据不同场景使用不同的账户发送邮件,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切换发件账户内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
javascript 小型动画组件与实现代码
Jun 02 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
Apr 01 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 #PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 #PHP
Yii redis集合的基本使用教程
Jun 14 #PHP
php获取小程序码的实现代码(B类接口)
Jun 13 #PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 #PHP
详解php反序列化
Jun 10 #PHP
实例讲解PHP表单
Jun 10 #PHP
You might like
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
keras中的History对象用法
2020/06/19 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
五种Python转义表示法
2020/11/27 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
总经理职责范文
2013/11/08 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
早上好问候语大全
2015/11/10 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书