发送邮件并不复杂。Laravel 基于 Symfony Mailer 组件提供了一个简洁、简单的邮件 API。Laravel 和 Symfony 为 Mailer SMTP 、Mailgun 、Postmark 、 Amazon SES 、 及 sendmail (发送邮件的方式)提供驱动,允许你通过本地或者云服务来快速发送邮件。
需要准备的内容
①laravel框架
②一个用于发送邮件的账号
③一个用于接收邮件的账号
邮箱配置
不管是用什么程序发送邮件基本的原理都是当程序的某个行为被触发时,执行发送邮件的行为;发送邮件则必须要有一个邮箱账号,只是与人工操作的不同在于,程序则是在后台直接执行了邮箱的登录及内容的发送而已。
注册邮箱

这边以163邮箱为例,注册一个163邮箱,进入设置页面如上图所示。开启IMAP/SMTP服务,并创建一个授权码,授权码是一串字母,记录保存好,一旦创建页面关闭就无法在查看,只能重新创建。这里以163邮箱为例子,其它的邮箱服务商也是同样的操作操作方法。
配置laravel框架
//.evn
MAIL_MAILER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=seoddcn
MAIL_PASSWORD=HBBFDCTYGFDDX
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=seoddcn@163.com
MAIL_FROM_NAME=潘某人SEO
找到laravel框架根目录下的‘.evn’文件,将你的创建的163邮箱的配置填入上述的字段中。
修改第五行‘MAIL_USERNAME’,可以随便填,为收件人看见的发件人名称
修改第六行‘MAIL_PASSWORD’,将这个字段的值修改为刚才创建的163的授权码
修改第八行‘MAIL_FROM_ADDRESS’,输入你的163邮箱地址
修改第九行‘MAIL_FROM_NAME’,可以随便填,为收件人看见的邮件来源
清空config缓存
//切换到laravel框架的目录
cd /home/www/seodd
php artisan config:cahche
必需记得这一步config缓存清空,否则‘.evn’不管怎么设置都不会生效的。
创建控制器
<?php
namespace App\Http\Controllers\demo;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class mailController extends Controller
{
public function mailto(Request $request){
//文本邮件发送功能
Mail::raw($text, function ($message) {
$to = 'seoddcn@qq.com';//收件人邮箱
$message ->to($to)->subject('邮件主题');
});
}
public function mailtomore(Request $request){
//富文本邮件发送功能
Mail:: send('mail.index',['data'=>'邮件数据'], function ($message) {
//mail.index为邮件的blade模版
$message->to('接收者邮箱账号');
/*
局部设置发件人名称
参数1:发件人邮箱账号,与.env中发件人邮箱一致
参数2:接收人看到的发送人名称
*/
$message->from('发件人邮箱账号','xxx');
$message->subject('测试邮件');
});
}
}
自此调取此邮件控制器就可以实现邮件的发送,上述控制器,展示了纯文本和富文本的两种方式,更全的邮件发送方式可以参照laravel官方文档。
相关文章
-
SpringBoot——Thymeleaf中的条件判断
SpringBoot——Thymeleaf中的条件判断(th:if、th:unless、th:switch、th:case),th:if、th:unless、th:switch、th:case 这几个属性,其实和JSP里面的那些标签都是类似的,含义就可以理解为Java语言中的if、else、switch-case这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!
-
Sudo 本地提权漏洞修复
Unix和Linux系统Sudo 本地提权漏洞修复,国外研究团队发现sudo堆溢出漏洞(CVE-2021-3156),漏洞隐藏十年之久,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。
-
Vue中基于$event实现click事件获取html元素和css样式
Vue中实现单击click事件获取html元素和css样式的解决方法,$event是一个对象 $event是指当前触发的是什么事件(鼠标事件,键盘事件等) $event.target则指的是事件触发的目标,即哪一个元素触发了事件,这将直接获取该dom元素。
-
css鼠标悬停变色:超链接字体随鼠标悬停颜色改变实现
css设置超链接鼠标悬停字体上时字体变颜色,css设置鼠标悬停变色布局。鼠标悬停字体上文字变色,通常针对超链接锚文本字体颜色改变,使用了伪类:hover。
-
Springboot如何生成cookie,获取cookie信息
Springboot如何生成cookie,获取cookie信息,cookie就是一个小体积的键值对,格式:key=value;客户端和服务器端,通常使用http协议来进行数据传输,而http协议是无状态的。也就是客户端向同一个服务器端发送的第一次Request和第二次Request,是没有关联的。需要cookie来保存一些用户信息,每次向相同的域名(domian)和路径(path)发送Request时都会携带cookie。
-
JavaScript == 与 === 区别
js中==和===的区别 ==和===的区别和一些比较规则: == 在比较类型不同的变量时,会进行数据类型转化,将二者转换成数据类型相同的变量,再进行比较。对于 string、number 等基础类型,== 和 === 是有区别的 a)不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。
-
linux系统CentOS发送邮件
如何在linux、ubuntu、centos系统中发送邮件,如定时发送网站日志,或者服务器信息状态,如何在centos系统中配置邮件发送功能。
-
JavaScript简介
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript
-
lnmp环境简介
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
-
laravel如何封装函数全局调用
laravel如何封装函数,实现全局调用。我们就拿PHPAnalysis分词程序作为例子来演示下。PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。
-
网站本地服务器搭建
网站搭建第一步本地服务器的架设centos系统安装,对于刚接触网站编程的小伙伴不要先急着去购买服务器,当然土豪请随意。我们可以现在自己电脑上本地搭建一个虚拟服务器环境来运行,可以检测下自己是不是真的能力去搭建一个网站。
-
centos下修改ssh端口
服务器如何修改默认的ssh端口,修改ssh默认端口是非常有必要的可以保证登陆的安全性。如何修改服务器的默认远程登陆端口呢,我们以centos系统为例子,linux等其它系统差不多请参照。服务器的默认ssh端口为22,不管是windows还是linux服务器都是22端口,可以方便我们在终端中通过sftp来链接服务器,尤其是linux系统,实现文件目录的可视化,可以更加方便的操作。
-
php如何匹配特定的汉字字母英文preg_match_all方法实现
php如何从字符串匹配特点的内容,preg_match_all如何匹配字符串内容,数字、字符、字母,正则匹配,php正则表达式中preg_match_all函数的详解。
-
MySQL常用查询语句大全
MySQL常用的查询语句大全看这里,值得收藏。MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于 Oracle 旗下产品。
-
什么是css语言
CSS全称为Cascading Style Sheets(层叠样式表),中文翻译为“层叠样式表”,简称CSS样式表。它是一种用来表现HTML或 XML 等文件式样的计算机语言。
-
原生js 复制内容到剪切板代码实现
有时候为了提升用户体验,比如在某些页面需要实现点击内容,将内容复制到剪切板,可以提升用户复制内容的操作效率;因此在实际操作中通过一定的事件触发复制功能是非常有意义的行为,下面是两种通过原生js实现复制内容到剪切板。
-
Laravel Module开发包安装方法
linux环境下通过composer安装Laravel 模块化laravel-modules包,实现laravel 的模块管理器。
-
springboot怎么返回404页面及状态码
我们的项目通常来讲都是一个比较大的项目,包含了各种各样的服务。如果每个服务都以不同的方式返回异常信息,这样排查的时候就会比较凌乱。如果我们定义一个标准的异常处理体系。并在所有的服务中使用。那样开发起来就可以快速定位。页面也会更加的简单和直观。