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 根据IP地址控制访问的代码
Apr 22 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
PHP临时文件的安全性分析
Jul 04 PHP
分享3个php获取日历的函数
Sep 25 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
各种快递查询--Api接口
Apr 26 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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
php4的session功能评述(三)
2006/10/09 PHP
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python 解析简单的XML数据
2020/07/24 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
水务局局长岗位职责
2013/11/28 职场文书
秋天的图画教学反思
2014/05/01 职场文书
离婚财产分配协议书
2014/10/21 职场文书
接收函格式
2015/01/30 职场文书
客户答谢会致辞
2015/07/30 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
导游词之昭君岛
2020/01/17 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL