关键记下服务器地址(SMTP

本文实例呈报了Laravel5.0+框架邮件发送功效达成形式。共享给大家供我们参谋,具体如下:

I. 背景 前段时间在触及旧事中最高贵的 PHP
框架——Laravel,学习了弹指间邮件发送功用,在那分享一下

测试蒙受:Laravel 5.2.45,Laravel 5.5 使用合同:SMTP 邮件传输合同 对于
ThinkPHP 框架框架的邮件发送可参看文章 ThinkPHP 框架下邮件发送效率

II. 作用开采进度 此处以 新浪邮箱为例。大器晚成、早先时代希图.首先对 SMTP
的文化稍作精通.开启邮箱 SMTP 服务 以 163.com
邮箱为例,点击上方导航栏的“设置”,采取“POP3/SMTP/IMAP”实行上边包车型地铁安装,珍视记下服务器地址(SMTP
服务器:smtp.163.com卡塔尔国然后点击“顾客端授权密码”进行权力设置,常常会开展短信的验证,并记录下本人设定的授权登陆密码,前面包车型地铁代码中必要用到。二、代码完毕.改善配置文件
mail.php 文件位寄放在 config/mail.php 改正此中的 “from”
音讯,以自家为例,address 为发送方邮箱账号,name 为称谓

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

.改革配置文件 .env

MAIL_DRIVER=smtpMAIL_HOST=smtp.163.comMAIL_PORT=25MAIL_USERNAME=1xxxxxxx@163.comMAIL_PASSWORD=xxxxxMAIL_ENCRYPTION=null

只顾陈设消息的填充:MAIL_USERNAME,MAIL_PASSWO凯雷德D
为中期希图中记下的163信箱账号及客户端授权密码

MAIL_PORT 为私下认可端口号,要是布署 MAIL_ENCLX570YPTION = ssl
时,端口号须求改换为 465

.补充路由音讯

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

.调控器代码编写 基本的代码编辑如下注意,自己开掘网络的介绍有出入,有的是使用 Mail
类,估量应该是本子不一样的开始和结果,此处针对 5.2.45、5.5 版本实行的测量试验 附录
TestController.php 源代码以供仿效

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

三、 代码表达此方法为发送纯文本邮件的功能实现,调用此办法发送的邮件截图如下:
此方法为自定义格式邮件发送的效能完毕完结的前提供给有安排性分界面,代码中譬如为本人轻松设计的 mail.blade.php
参照他事他说加以侦察代码如下:

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

调用此方式发送的邮件截图如下:III. 补充.另黄金年代种轻松写法
其实可提供风姿浪漫种更简便的写法,与地点所拍卖的 raw 方法相仿,举例:

use IlluminateSupportFacadesMail;$tag = Mail::raw('你好,我们已经准备好了',function { $message->to; });

唯独,测验发掘会犹如下报错:

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

不过后面包车型地铁首先种代码方案,不会产出此难题,何况邮件发送响应快一些,但是,此代码若是放在队列中推行,测量试验发现不做别的改过也是能够完毕…

缘由和缓和方案,请参见小说 – PHP中的函数嵌套层数约束

.554 邮件发送报错 有时邮件发送时,会犹如下报错,比如 554
多表示邮件发送过多被系统禁绝了,具体音信可由此提醒音讯中的网站进行查询.
具体代码可自动优化,至极建议多多谷歌(Google卡塔 尔(阿拉伯语:قطر‎,还能帮到不菲忙的.. post
央求500报错 注意一点:laravel框架暗中认可须求表单提交时索要足够

{{ 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

越来越多关于Laravel相关内容感兴趣的读者可查阅本站专项论题:《Laravel框架入门与进级教程》、《php优越开垦框架总括》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php管见所及数据库操作工夫汇总》

希望本文所述对我们基于Laravel框架的PHP程序设计具备助于。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website