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 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
PHP empty函数报错解决办法
Mar 06 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
PHP implode()函数用法讲解
Mar 08 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
微信支付的开发流程详解
2016/09/13 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP多维数组排序array详解
2017/11/21 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
Vue header组件开发详解
2018/01/26 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
培训心得体会
2013/12/29 职场文书
夜不归宿检讨书
2014/02/25 职场文书
士力架广告词
2014/03/20 职场文书
委托书样本
2014/04/02 职场文书
抽样调查项目计划书
2014/04/24 职场文书
防沙治沙典型材料
2014/05/07 职场文书
铅球加油稿100字
2014/09/26 职场文书
2014年科协工作总结
2014/12/09 职场文书
道士塔读书笔记
2015/06/30 职场文书
退休职工欢送会致辞
2015/08/01 职场文书