2016-12-22 64 views
0

我喜歡一些HTML標記添加到MAILMESSAGE使用像這樣我的郵件的正文:Laravel 5.3添加HTML到MailMessage->行

$mailMessage = new MailMessage(); 
$mailMessage->line(trans('mail.someLine')); 

在mail.php:

'someLine' => 'Bla bla <a href="html://someurl">html://someurl</a>' 

但在實際的郵件中,整行以純文本出現。

我試着使用html_entity_decode但沒有成功:

$mailMessage->line(html_entity_decode(trans('mail.someLine'))); 

好像線方法做它自己的編碼。有沒有解決方法?

ps其餘的郵件都有正確的html,所以這不是重點!

更新: $ mailMessage->行爲在這種情況下不會執行。說它應該適用於這樣的事情: $mailMessage->line('Bla bla <strong>something strong</strong> bla');

回答

4

檢查MAILMESSAGE/SimpleMessage中的代碼,我發現這不是這些類是做了編碼,但email.blade.php模板本身。

在email.blade.php中將{{ $line }}部件更改爲{!! $line !!}最終取得了成效。

ps請確保先運行php artisan vendor:publish,這樣您就不需要更改供應商文件夾中的原始email.blade.php!

0

嘗試通過添加與MailMesage對象的動作標記。

$mailMessage 
     ->line('Simple mail') 
     ->action('Link Title', url('password/reset', $this->token)); 
+0

問題是這個動作會顯示一個按鈕(我也需要在同一個模板中,所以我不能爲此改變模板)。 如果我想要一個強標籤中的單詞,例如? –

+1

您可以覆蓋$ mailMessage-> view()來定義您的自定義視圖以進行通知。 –

+0

我發現針對特定問題的最佳解決方案是更改email.blade,但覆蓋也是一個選項! –