zoukankan      html  css  js  c++  java
  • 利用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了。

  • 相关阅读:
    封装一个php语言的api提示类
    Content-Type四种常见取值
    postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    ansible find
    Linux系统中根目录下或者新挂载的磁盘目录下有一个叫lost+found,它的作用是什么?
    rm /mv需要注意的
    mount
    es number_of_shards和number_of_replicas
    logstash设置配置路径
    ES7.8 设置 xpack
  • 原文地址:https://www.cnblogs.com/martianShu/p/6031597.html
Copyright © 2011-2022 走看看