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初学入门
Nov 19 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
php中filter_input函数用法分析
Nov 15 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
php使用json-schema模块实现json校验示例
Sep 28 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文件中是否含有bom的函数
2012/05/31 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JS的replace方法介绍
2012/10/20 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python匹配中文的正则表达式
2016/05/11 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
pandas实现导出数据的四种方式
2020/12/13 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
法国房车租赁网站:Yescapa
2019/08/26 全球购物
理工大学毕业生自荐信范文
2014/02/22 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
小学语文教研活动总结
2014/07/01 职场文书
市场总监岗位职责
2015/02/11 职场文书
幼师辞职信范文
2015/02/27 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书