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部分常见问题总结
Mar 27 PHP
php 文件上传系统手记
Oct 26 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
PHP防CC攻击实现代码
Dec 29 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
全面解读PHP的Yii框架中的日志功能
Mar 17 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
理解javascript封装
2016/02/23 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
简述Python中的进程、线程、协程
2016/03/18 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
人事档案接收函
2014/01/12 职场文书
火车的故事教学反思
2014/02/11 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
入职担保书怎么写
2014/05/12 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js