2016-07-01 15 views
1

Ich habe eine Datei mit dem Namen dummy.blade.php erstellt, die den folgenden Code hatSenden HTML E-Mail-Vorlagen mit Laravel

<!DOCTYPE html> 
<html lang="en-EN"> 
    <head> 
    <meta charset="utf-8"> 
    </head> 
    <body bgcolor="#11C9FF"> 
    {{$emailBody}} 
    </body> 
</html> 

Und ich versuche HTML-Inhalt senden mit:

Mail::send('emailTemplates.dummy', ['emailBody'=>'<h1>TESTING</h1>'], function($message) 
{ 
$message->to($myEmail)->subject('Password reset'); 
}); 

und die empfangene E-Mail wie folgt aus:

enter image description here

per Dokumentation, dass ich das HTML-Format erhalten sollte, aber ich empfange einfache textbasierte E-Mails. Irgendwelche Hinweise?

+0

'Mail :: senden ([ 'html' => 'view' ], $ data, $ callback); 'es wird in Laravel docs –

+0

@MurtazaKhursheedHussain erwähnt, so ist dies: Standardmäßig wird angenommen, dass die Ansicht, die der send-Methode gegeben wird, HTML enthält. Wenn Sie jedoch ein Array als erstes Argument an die send-Methode übergeben, können Sie eine reine Textansicht angeben, die zusätzlich zur HTML-Ansicht gesendet werden soll: – zanderwar

+0

@MurtazaKhursheedHussain Ich hätte das erwähnen sollen, ich habe das bereits versucht .. –

Antwort

0

Quelle: https://laravel.com/docs/5.1/mail

standardmäßig die auf die Sendemethode gegeben Ansicht wird angenommen, HTML enthalten. Doch durch einen Array als erstes Argument an die Sende-Methode übergeben, können Sie eine einfache Textansicht angeben zusätzlich zu der HTML-Ansicht zu senden:

Mail::send(['html.view', 'text.view'], $data, $callback);

Oder, wenn Sie nur ein einfachen senden müssen Text-E-Mail, können Sie dies mit dem Textschlüssel im Array angeben:

Mail::send(['text' => 'view'], $data, $callback);

+0

wenn es standardmäßig HTML ist sollte es dann funktionieren –

0

einfach veröffentlichen die Antwort, wie es für andere nützlich sein könnte. geändert

{{$emailBody}} 

zu

<?= $emailBody ?> 

und es funktionierte wie ein Charme.

0

Doppelte geschweifte Klammern entkommen das HTML innerhalb von ihnen, Sie müssen unterschiedliche Syntax für eine nicht gesäumte Zeichenkette verwenden.

Also statt

{{ $emailBody }} 

sollten Sie

{!! $emailBody !!} 

Sie können mehr über lesen Sie hier verwenden: https://laravel.com/docs/5.5/blade#displaying-data