• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel5.0+框架邮件发送功能实现方法图文与实例详解

    本文实例讲述了Laravel5.0+框架邮件发送功能实现方法。分享给大家供大家参考,具体如下:

    I. 背景

    • 测试环境:Laravel 5.2.45,Laravel 5.5
    • 使用协议:SMTP 邮件传输协议
    • 对于 ThinkPHP 框架框架的邮件发送可参考文章 ThinkPHP 框架下邮件发送功能

    II. 功能开发过程

    一、前期准备

    (1).首先对 SMTP 的知识稍作了解

    (2).开启邮箱 SMTP 服务

    二、代码实现

    (1).修改配置文件 mail.php

     'from' => ['address' => '1xxxxxxx@163.com', 'name' => '逗比2号'],

    (2).修改配置文件 .env

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.163.com
    MAIL_PORT=25
    MAIL_USERNAME=1xxxxxxx@163.com
    MAIL_PASSWORD=xxxxx
    MAIL_ENCRYPTION=null
    
    

    (3).补充路由信息

    Route::any('mail', 'TestController@mail');
    
    

    (4).控制器代码编写

    ?php
    namespace App\Http\Controllers;
    use Illuminate\Mail\Mailer;
    
    class TestController extends Controller
    {
     private $mailer;
    
     public function __construct(Mailer $mailer)
     {
      $this->mailer = $mailer;
     }
     /**
      * 发送邮件
      */
     public function mail(){
      //测试数据
      $viewData = ['title' => '你若盛开,清风自来','author' => '木心'];
      $emailData = [
       'content' => '从前的日色变得慢 车 马 邮件 都慢',
       'subject' => '这是邮件主题,希望您能支持!',//邮件主题
       'addr' => 'xxxxxxxxx@qq.com',//邮件接收地址
      ];
      $this->sendText($emailData);
      //$this->sendHtml('mail',$viewData,$emailData);
      //TODO $tag 判断发送是否成功,进行后续代码开发
      return view('mail',['title' => '你若盛开,清风自来','author' => '木心']);
     }
    
     /**
      * 发送纯文本 邮件
      * @param $emailData 邮件数据
      */
     public function sendText($emailData){
      //此处为文本内容
      $tag = $this->mailer
       ->raw($emailData['content'],
        function ($message)use ($emailData){
         $message->subject($emailData['subject']);
         $message->to($emailData['addr']);
        });
      return $tag;
     }
     /**
      * 发送自定义网页
      * @param $emailData 邮件数据
      * @param $viewPage html视图
      * @param $viewData html传输数据
      */
     public function sendHtml($viewPage,$viewData,$emailData){
      $tag = $this->mailer
       ->send($viewPage,$viewData,
        function ($message) use ($emailData){
         $message->subject($emailData['subject']);
         $message->to($emailData['addr']);
        });
      return $tag;
     }
    }
    

    三、 代码说明

    (1).方法 sendText()

    (2).方法 sendHtml()

    html>
    style>
     *{
      font-family: 楷体;
     }
    /style>
    h2>{{$title}}/h2>
    ![]({{asset('uploads/20170902/59aa05723e35d.jpg')}})
    pre>
      从前的日色
      变得慢
      车 马 邮件
       都慢
     一生只够爱一个人
        --{{$author}}
    /pre>
    /html>

    III. 补充

    (1).另一种简单写法

    use Illuminate\Support\Facades\Mail;
    
    $tag = Mail::raw('你好,我们已经准备好了',function ($message){
       $message->to('9xxxxxxxxxx@qq.com');
      });

    FatalErrorException in ClassLoader.php line 373:Maximum function nesting level of '100' reached, aborting!

    (2).554 邮件发送报错

    (3). post 请求500报错

    {{ csrf_field() }}

    附:PHP中的函数嵌套层数限制

    访问PHP网站如下以下错误:

     Fatal error: Maximum function nesting level of '100' reached, aborting!

    原因分析:

    这个问题是由于你启用了xdebug,而xdebug默认设置了函数最大嵌套数为100

    解决办法:

    找到php.ini文件,找到xdebug
    在最后加上xdebug.max_nesting_level = 500 (这个数最好大于100即可)

    更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • Laravel中利用队列发送邮件的方法示例
    • 在Laravel框架里实现发送邮件实例(邮箱验证)
    • laravel5.4利用163邮箱发送邮件的步骤详解
    • Laravel框架实现的使用smtp发送邮件功能示例
    • PHP的Laravel框架中使用消息队列queue及异步队列的方法
    • 浅析Laravel5中队列的配置及使用
    • Laravel使用消息队列需要注意的一些问题
    • 浅谈Laravel队列实现原理解决问题记录
    • Laravel框架队列原理与用法分析
    • Laravel 队列使用的实现
    • laravel5.6 框架邮件队列database驱动简单demo示例
    上一篇:一文掌握PHP Xdebug 本地与远程调试(小结)
    下一篇:PHP实现二维数组按照指定的字段进行排序算法示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel5.0+框架邮件发送功能实现方法图文与实例详解 Laravel5.0+,框架,邮件,发送,