for example content ciclo php html email laravel newline

php - example - Laravel 5 agregar HTML al correo electrónico



laravel yield example (4)

Después de verificar varias soluciones, los siguientes códigos funcionaron para mí:

try { $template_data = [''otp'' => $otp, ''name'' => $name]; //send verification code Mail::send([''html'' => ''email.account_verification''], $template_data, function ($message) use ($email) { $message->to($email) ->from(''[email protected]'') //not sure why I have to add this ->subject(''Account verification''); }); return Response::json([''code'' => 200, ''msg'' => ''Sent successfully'']); } catch (Exception $ex) { return Response::json([''code'' => 200, ''msg'' => ''Something went wrong, please try later.'']); }

Actualmente estoy intentando crear un correo electrónico HTML en Laravel 5 y tengo algo de texto (que contiene <br/> elementos) que quiero insertar en el correo electrónico. Utilizo el siguiente fragmento de código para enviar el correo electrónico:

Mail::send(array(''html'' => ''emails.newinvoice''), array(''text'' => $emailtext), function($message) use ($email, $subject, $contact_company) { $message->to($email, $contact_company)->subject($subject); });

Entonces, la variable $emailtext contiene texto con etiquetas HTML. En mi vista de diseño de emails.newinvoice , tengo lo siguiente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head></head> <body> <p>{{{ $text }}}</p> </body> </html>

Al enviar el correo electrónico, el texto insertado en mi correo y los elementos HTML en ese texto se muestran como caracteres normales, lo que significa que mi correo electrónico aparece como:

test<br/>test

En lugar de

test test

¿Cómo puedo asegurarme de que las etiquetas HTML en el texto insertado se procesen como HTML y no como texto plano?


Necesitas usar:

{!! $text !!}

en lugar de

{{ $text }}

Blade escapa automáticamente de cualquier html cuando hace eco a menos que explícitamente le diga que no lo haga.


Sí, la solución anterior funciona bien ...

usa {!! $contents !!} {!! $contents !!}

en lugar de esto

{{ $contents }}

Esto {!! $contents !!} {!! $contents !!} es para permitir html Mientras que este {{ $contents }} es solo para texto sin formato.


html especificar la clave html en el primer parámetro:

Mail::send( [''html'' => ''emails.newinvoice''], [''text'' => $emailtext], // ^^^^

Además, reemplace el bloque de escape automático {{ }} por el sin escape {!! !!} {!! !!} en la plantilla:

<p> {!! $text !!} </p>