是否可以在Laravel的HTML电子邮件中包含图像

问题描述:

我正在尝试通过Laravel的Mail::send()发送HTML电子邮件。我正在使用的视图是一个Blade模板,但我不太确定如何在电子邮件正文中包含图像。是否可以在Laravel的HTML电子邮件中包含图像

在我的模板,我有

<h4>You have successfully updated your Session!</h4> 

@if ($old_date != $date) 
    <p>You have changed from {{ $old_date }} to {{ $date }}</p> 
@endif 

<p>If you have any questions or concerns, please contact the Office of Admissions</p> 

{{ HTML::image('/images/full-logo.png', 'logo') }} 

然而,我的电子邮件出来,只需在电子邮件正文中断开的链接图标。是否有可能将图像作为参数传递给视图?在我的控制器,它发送的电子邮件,我有

$data = array (
         'first_name' => $student->first_name, 
         'last_name'  => $student->last_name, 
         'date'   => $day, 
         'old_date'  => $old_day, 
       ); 


Mail::send ('/emails/create_student', $data, function ($message) { 
    ... 
}); 

所以我不知道是否有可能包括通过$data阵列的图像。

+0

是的,可以的,如果图像路径得到解决,请检查图像路径。 – 2015-04-01 16:15:11

+0

电子邮件不在您的网站上。您需要使用网站上图片的完整网址。 – Styphon 2015-04-01 16:15:15

HTML::image()产生绝对路径的图像,像这样:

http://yoursite.dev/image.png 

这在当地的环境完美的作品。

邮件客户端,包括Gmail,将覆盖图像路径有这样的事情:

http://images.gmail.com/?src=http://yoursite.dev/image.png 

Obviosly第三方服务无法访问您的地域,所以你看到破碎的形象。

作为解决方案,您可以将图像上传到Amazon AWS等第三方服务,并将链接上传到电子邮件模板。

这一个为我工作: 的图像在电子邮件视图

<img src="{{ $message->embed(public_path() . '/resources/icon/icon.png') }}" alt="" /> 

Laravel doc “A $消息变量总是通过电子邮件意见声明,并允许附件的内联嵌入“。

+0

这完美地工作,thx @obj – Louwki 2017-02-15 11:46:28