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+MYSQL的文章管理系统(一)
Oct 09 PHP
动态新闻发布的实现及其技巧
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
php array_search() 函数使用
Apr 13 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
thinkphp5框架扩展redis类方法示例
May 06 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
Jquery中获取iframe的代码
2011/01/11 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
vue axios 二次封装的示例代码
2017/12/08 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
用python实现刷点击率的示例代码
2019/02/21 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
新东网科技Java笔试题
2012/07/13 面试题
仓库主管的岗位职责
2013/12/04 职场文书
环境工程专业自荐信
2014/03/03 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
清明节寄语2015
2015/03/23 职场文书
停电放假通知
2015/04/14 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
Python中glob库实现文件名的匹配
2021/06/18 Python