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用数组返回无限分类的列表数据的代码
Aug 08 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
Jun 05 PHP
php自定义session示例分享
Apr 22 PHP
php防止sql注入的方法详解
Feb 20 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
php数据序列化测试实例详解
Aug 12 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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&amp;&amp;mysql)三
2006/10/09 PHP
php中fsockopen用法实例
2015/01/05 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python itertools模块详解
2015/05/09 Python
Python用threading实现多线程详解
2017/02/03 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Django models filter筛选条件详解
2020/03/16 Python
Python多进程编程常用方法解析
2020/03/26 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
特教教师先进事迹
2014/05/21 职场文书
汽车转让协议书范本
2014/12/07 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
如何使用CocosCreator对象池
2021/04/14 Javascript
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS