首页 > 代码库 > 利用Laravel自带的Mail类发邮件
利用Laravel自带的Mail类发邮件
由于项目在运行过程中经常用到邮件检测报警的功能,而在之前我都是用shell脚本发送邮件。shell脚本的优点是可以直接处理服务器指令,但是其缺点就是处理数据的能力效率太低,取数据库的许多数据要先把数据写入文件里,然后每行读文件并且分割来取出你想要的数据,相对来说麻烦太多。所以本人就准备直接利用Laravel框架封装好的Mail类直接发邮件,而且php语言相对shell来说数据处理能力简直强太多,所以果断弃坑了。
首先新建一个Laravel项目,在其.env文件里找到MAIL相关值,配好邮件发送账号的配置(根据不同的driver和host需自己进行对应,如163或者其他)。
其次,在config目录下的mail.php配置好address和name,当时我就是没配这个就半天发不出去,这种类似于配置项的东西Lavarel要是都写在.env里那就不是只用在.env里写好了之后就可以一键使用邮件了,岂不是更方便,这个地方给个差评。mail.php把这两个地方加上即可:
最后在自己的Controller里引用Mail类
然后在调用发邮件的方法send():
//发邮件
$flag = Mail::send(‘emails.test‘,[‘data‘=>$data],function($message)
{
$to = ‘123456789@qq.com‘;
$message ->to($to)->subject(‘测试邮件‘);
});
if($flag)
{
echo ‘邮件发送成功‘;
}
else
{
echo ‘邮件发送失败‘;
}
send()方法里第一个参数为resource/views下的任意一个页面(这个页面就是邮箱要显示的内容),第二个参数为从后台传回到那个页面的参数,$to为邮件接收人,subject为邮件的主题,这样就把一封邮件呢发出去了,相比之前方便很多。
最后我在linux下放一个crontab定时向我这个项目发curl请求就可以定时跑任务了,早就应该弃shell了。
利用Laravel自带的Mail类发邮件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。