2015-04-01 55 views
4

我正在嘗試通過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

回答

2

HTML::image()產生絕對路徑的圖像,像這樣:

http://yoursite.dev/image.png 

這在當地的環境完美的作品。

郵件客戶端,包括Gmail,將覆蓋圖像路徑有這樣的事情:

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

Obviosly第三方服務無法訪問您的地域,所以你看到破碎的形象。

作爲解決方案,您可以將圖像上傳到Amazon AWS等第三方服務,並將鏈接上傳到電子郵件模板。

5

這一個爲我工作: 的圖像在電子郵件視圖

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

Laravel doc 「A $消息變量總是通過電子郵件意見聲明,並允許附件的內聯嵌入「。

+0

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

相關問題