是否可以在 Laravel 的 HTML 电子邮件中包含图片
Is it possible to include an image in a HTML email in Laravel
我目前正在尝试通过 Laravel 的 Mail::send()
发送一封 HTML 电子邮件。我在其中使用的视图是 Blade 模板,但我不太确定如何在电子邮件正文中包含图像。
在我的模板中,我有
<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') }}
但是,我收到的电子邮件正文中只有一个损坏的 link 图标。是否可以将图像作为参数传递给视图?在我发送电子邮件的控制器中,我有
$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
数组包含图像。
HTML::image()
生成图像的绝对路径,如下所示:
http://yoursite.dev/image.png
在您的本地环境中完美运行。
作为 Gmail 的邮件客户端将使用类似这样的内容覆盖图像路径:
http://images.gmail.com/?src=http://yoursite.dev/image.png
显然,第 3 方服务无法访问您的本地域,因此您看到的是损坏的图像。
作为一种解决方案,您可以将图像上传到 Amazon AWS 等第三方服务,然后将 link 传递给上传的图像到电子邮件模板。
这个对我有用:
图像在电子邮件视图中声明
<img src="{{ $message->embed(public_path() . '/resources/icon/icon.png') }}" alt="" />
来自 Laravel doc
"A $message variable is always passed to e-mail views, and allows the inline embedding of attachments."
我目前正在尝试通过 Laravel 的 Mail::send()
发送一封 HTML 电子邮件。我在其中使用的视图是 Blade 模板,但我不太确定如何在电子邮件正文中包含图像。
在我的模板中,我有
<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') }}
但是,我收到的电子邮件正文中只有一个损坏的 link 图标。是否可以将图像作为参数传递给视图?在我发送电子邮件的控制器中,我有
$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
数组包含图像。
HTML::image()
生成图像的绝对路径,如下所示:
http://yoursite.dev/image.png
在您的本地环境中完美运行。
作为 Gmail 的邮件客户端将使用类似这样的内容覆盖图像路径:
http://images.gmail.com/?src=http://yoursite.dev/image.png
显然,第 3 方服务无法访问您的本地域,因此您看到的是损坏的图像。
作为一种解决方案,您可以将图像上传到 Amazon AWS 等第三方服务,然后将 link 传递给上传的图像到电子邮件模板。
这个对我有用: 图像在电子邮件视图中声明
<img src="{{ $message->embed(public_path() . '/resources/icon/icon.png') }}" alt="" />
来自 Laravel doc "A $message variable is always passed to e-mail views, and allows the inline embedding of attachments."