当前位置: 首页 > news >正文

laravel 邮件发送

配置

Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。
邮件中的每一项都在配置文件中有单独的配置项,甚至是独有的「传输方式」,允许你的应用使用不同的邮件服务发送邮件

'mailers' => ['smtp' => ['transport' => 'smtp','host' => env('MAIL_HOST', 'smtp.mailgun.org'),'port' => env('MAIL_PORT', 587),'encryption' => env('MAIL_ENCRYPTION', 'tls'),'username' => env('MAIL_USERNAME'),'password' => env('MAIL_PASSWORD'),'timeout' => null,'local_domain' => env('MAIL_EHLO_DOMAIN'),],]

生成 Mailables

在构建 Laravel 应用程序时,应用程序发送的每种类型的电子邮件都表示为一个 mailable 类。 这些类存储在 app/Mail 目录中

php artisan make:mail OrderShipped

编写 Mailables

所有可邮寄类的配置都是在 build 方法中完成的。 在此方法中,可以调用各种方法,例如 from、subject、view 和 attach 来配置电子邮件的呈现和传递。

配置发件人

from 方法

首先,让我们浏览一下邮件的发件人的配置。或者,换句话说,邮件来自谁。有两种方法配置发件人。第一种,你可以在 mailable 类的 build 方法中使用 from 方法:

 public function build(){return $this->from(env('MAIL_USERNAME'),env('MAIL_FROM_ADDRESS'))->view('emails.shipped');}

配置视图

可以在 mailable 类的 build 方法中使用 view 方法来指定在渲染邮件内容时要使用的模板。由于每封邮件通常使用 Blade 模板 来渲染其内容,因此在构建邮件 HTML 内容时你可以使用 Blade 模板引擎提供的所有功能及享受其带来的便利性

邮件模板一般存放于resources/views/emails下面

还可以配置视图变量,直接在视图模板中使用

在Mailables类中的构造方法中可以配置视图数据

/*** @var User*/public $user;/*** Create a new message instance.** @return void*/public function __construct($user){$this->user = $user;}

在调用发送时

$user = User::all();
Mail::to('xxx@qq.com')->send(new OrderShipped($user));

视图

<h2>测试邮箱发送</h2>
<p>{{$user[0]['email']}}</p>

好的,到这一步就可以发送成功了
在这里插入图片描述

其实还可以使用with使用变量

 public function build(){return $this->from(env('MAIL_USERNAME'),env('MAIL_FROM_ADDRESS'))->with(['name' => '测试变量','time' => date('Y-m-d H:i:s')])->view('emails.shipped');}

视图

<h2>测试邮箱发送</h2>
名字:<p>{{$name}}</p>
发送时间<p>{{$time}}</p>
邮箱:<p>{{$user[0]['email']}}</p>

相关文章:

laravel 邮件发送

配置 Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。 邮件中的每一项都在配置文件中有单独的配置项&#xff0c;甚至是独有的「传输方式」&#xff0c;允许你的应用使用不同的邮件服务发送邮件 mailers > [smtp > [transport > smtp,host > env(M…...

高性能 Jsonpath 框架,Snack3 3.2.57 发布

Snack3&#xff0c;一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明&#xff0c;及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示&#xff0c;ONode也即 One node 之意&#xff0c;代表任何类型&#xff0c;也可以转换为任何类型。 强调文档…...

Android---进程间通信机制3

1 服务如何注册到 SM 中 getIServiceManager().addService(name, service, false); getIServiceManger --- new ServiceManagerProxy(new BinderProxy()) BinderInternal.getContextObject --- 返回 BinderProxy 对象 ProcessState::self()->getContextObject: 创建一个 BpB…...

Python实战,爬取金融期货数据

大家好&#xff0c;我是毕加锁。 今天给大家带来的是 Python实战&#xff0c;爬取金融期货数据 文末送书&#xff01; 文末送书&#xff01; 文末送书&#xff01; 任务简介 首先&#xff0c;客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注&#xff1a;获取的是…...

Allegro如何导入第三方网表操作指导

Allegro如何导入第三方网表操作指导 在用Allegro做PCB设计的时候,除了支持第一方网表的导入,同样也是可以导入第三方网表的,第三方网表如下图 如何导入,具体操作如下 点击Setup点击User Preference...

高码率QPSK调制解调方案(FPGA实现篇)

在前面的章节中,已经讲过QPSK调制的方案和Matlab算法仿真,在本篇中,主要讲解基于FPGA的高速QPSK调制的实现。根据前面提到的技术指标,本系统传输的数据速率为500Mbps,中频为720MHz,因此,传统的串行QPSK调制已经不合适在FPGA中实现,需采用全数字的并行方式进行调制,具体…...

Elasticsearch的RESTful Api使用

Elasticsearch的RESTful Api使用 文章目录Elasticsearch的RESTful Api使用查询集群健康情况查看所有索引其他的_cat命令创建索引删除索引修改索引查看索引创建文档批量操作文档删除文档查询文档全量更新文档局部更新文档索引的搜索分词分析分数说明查询类型分析查询集群健康情况…...

软著申请需要注意的

一、文档格式 &#xff08;1&#xff09;程序源代码和说明文档&#xff0c;源码前后30页&#xff0c;文档前后30页。 &#xff08;2&#xff09;软件源代码和说明书的页眉必须标明软件名称、版本号和页码&#xff0c;应当与申请表中相应内容完全一致 &#xff08;3&#xff09…...

SpringBoot入门 - 添加Logback日志

SpringBoot开发中如何选用日志框架呢&#xff1f; 出于性能等原因&#xff0c;Logback 目前是springboot应用日志的标配&#xff1b; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。日志框架的基础在学习这块时需要一些日志框架的发展和基础&#xff0c;同时了…...

社会实践报告

中文摘要: 注重素质教育的今天&#xff0c;社会实践活动一直被视为高校培养德、智、体、美、劳全面发展的跨 世纪优秀人才的重要途径。团期社会实践活动是学校教育向课堂外的一种延伸&#xff0c;也是推进素质教育进程的重 手段。它有助于当代大学生接触社会&#xff0c;了解社…...

LeetCode 460. LFU 缓存 -- 哈希查询+双向链表

LFU 缓存 困难 634 相关企业 请你为 最不经常使用&#xff08;LFU&#xff09;缓存算法设计并实现数据结构。 实现 LFUCache 类&#xff1a; LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 int get(int key) - 如果键 key 存在于缓存中&#xff0c;则获取键…...

Dubbo 源码分析 – SPI 机制

1.简介 SPI 全称为 Service Provider Interface&#xff0c;是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中&#xff0c;并由服务加载器读取配置文件&#xff0c;加载实现类。这样可以在运行时&#xff0c;动态为接口 加载实现类。正因此特性&#xff0…...

JDBC概述二(JDBC编程+案例展示)

一&#xff08;JDBC的编程步骤&#xff09; 1.加载数据库驱动 加载数据库驱动通常使用class类的静态方法forName&#xff08;&#xff09;来实现&#xff0c;具体实现方式如下&#xff1a; Class.forName&#xff08;“DriverName”&#xff09;&#xff0c;DriverName就是数…...

广度和深度优先搜索解析与示例代码

一,什么是搜索算法 算法是基于特定数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。 树是图的一种特例(连通无环的图就是树)。 图上的搜索算法,最直接的理解就是,在图中找出从一个顶点出发,到另一个顶点的路径。具体方法有很多,两种…...

基于SLIC超像素的归一化分割算法

论文&#xff1a;基于SLIC超像素的归一化分割方法研究 归一化分割的缺点&#xff1a;单独使用时无法区分很接近的图像区域&#xff0c;实时性也差。 区域接近问题&#xff1a;描述图像间相互关系的权重函数的取值&#xff0c;体现图像间的信息特征&#xff0c;影响分割效果。…...

C语言刷题(4)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容又到了我们的复习啦&#xff0c;那么还是刷题噢&#xff0c;话不多说&#xff0c;让我们进入C语言的世界吧 BC55 简单计算器 BC56 线段图案 BC57 正方形图案 BC58 直角三角形图案 BC59 翻转直角三角形图案 BC60 带空格…...

带你看懂RuoYi动态数据源切换

文章目录数据源是什么一、spring中是如何处理各种数据源的&#xff1f;1.开搞springboot2.创建一个测试类二、有了如上的理论,那么想想动态切换数据源吧参考若依的动态数据源配置总结数据源是什么 数据源,对于java来说,就是可用的数据库,那么我平时开发的springboot springclo…...

家有女儿必看:盲目的和青春期女儿较劲,不如掌握4个沟通技巧

导读&#xff1a;家有女儿必看&#xff1a;盲目的和青春期女儿较劲&#xff0c;不如掌握4个沟通技巧 各位点开这篇文章的朋友们&#xff0c;想必都是很高的颜值吧&#xff0c;我们真的是很有缘哦&#xff0c;小编每天都会给大家带来不一样的育儿资讯&#xff0c;如果对小编的文…...

【VC 7/8】vCenter Server 基于文件的备份和还原Ⅰ——基于文件的备份和还原的注意事项和限制

目录1.1 协议1.2 还原后配置说明1.3 Storage DRS1.4 分布式电源管理1.5 分布式虚拟交换机1.6 内容库1.7 虚拟机生命周期操作1.8 vSphere High Availability1.9 基于存储策略的管理1.10 其它注意事项虚拟存储区域网络修补关联博文[图片来源]&#xff1a;https://www.vmignite.co…...

【ROS学习笔记10】ROS中配置自定义Cpp头文件和导入自定义Python库

【ROS学习笔记10】ROS中配置自定义Cpp头文件和导入自定义Python库 文章目录【ROS学习笔记10】ROS中配置自定义Cpp头文件和导入自定义Python库一、ROS中的头文件和源文件1.1 自定义头文件调用1.2 自定义源文件调用二、Python模块的导入Reference写在前面&#xff0c;本系列笔记参…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...