JSON

在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-16 19:28 我要评论( )

这里的$message就是上述邮件发送闭包中的$message,Laravel内部自动将该变量传递到邮件视图。当然我们还需要在控制器动作中传入$imgPath变量: $name = '学院君';$imgPath = 'http://laravelacademy.org/wp-statics

这里的$message就是上述邮件发送闭包中的$message,Laravel内部自动将该变量传递到邮件视图。当然我们还需要在控制器动作中传入$imgPath变量:

$name = '学院君'; $imgPath = 'http://laravelacademy.org/wp-statics/images/carousel/LaravelAcademy.jpg'; $flag = Mail::send('emails.test',['name'=>$name,'imgPath'=>$imgPath],function($message){ $to = '1072155122@qq.com'; $message->to($to)->subject('测试邮件'); $attachment = storage_path('app/files/test.doc'); //在邮件中上传附件 $message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode('测试文档')."?=.doc"]); });

在浏览器中访问:8000/mail/send发送邮件,邮件发送成功后去收件箱查看:

Laravel发送带图片的邮件

由此可见,图片已经插入到邮件内容中。

embedData

此外还支持发送原生的图片数据到邮件中,即将本地图片读取到内存然后渲染到邮件视图,这可以通过$message上的embedData实现。

首先我们修改控制器动作如下:

$name = '学院君'; //$imgPath = 'http://laravelacademy.org/wp-statics/images/carousel/LaravelAcademy.jpg'; $image = Storage::get('images/test.jpg'); $flag = Mail::send('emails.test',['name'=>$name,'image'=>$image],function($message){ $to = '1072155122@qq.com'; $message->to($to)->subject('测试邮件'); $attachment = storage_path('app/files/test.doc'); //在邮件中上传附件 $message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode('测试文档')."?=.doc"]); });

记得在MailController顶部加上use Storage,然后修改邮件视图test.blade.php如下:

{{$name}},这是一封测试邮件 <br> <img src="{{$message->embedData($image,'LaravelAcademy.jpg')}}">

最后去浏览器中访问:8000/mail/send发送邮件,邮件发送成功去收件箱查看邮件内容:

Laravel发送带图片的邮件

同样可以成功插入图片。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Laravel学院

    Laravel学院

    2015-10-28 13:45

  • Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】

    Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】

    2015-10-10 16:49

  • 优质Laravel中文学习资源平台

    优质Laravel中文学习资源平台

    2015-10-10 11:13

网友点评
0