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 相关文章推荐
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
PHP取二进制文件头快速判断文件类型的实现代码
Aug 05 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
Aug 28 PHP
php页面缓存方法小结
Jan 10 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
JS对文本框值的判断示例
2014/03/10 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Python实现最常见加密方式详解
2019/07/13 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python with (as)语句实例详解
2020/02/04 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
python中添加模块导入路径的方法
2021/02/03 Python
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
南京某公司笔试题
2013/01/27 面试题
商务邀请函范文
2014/01/14 职场文书
年度考核自我鉴定
2014/02/02 职场文书
新文化运动的基本口号
2014/06/21 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
人事代理委托书
2014/09/27 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
运动会开幕式主持词
2015/07/01 职场文书