es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál podría ser la razón por la cual Mail::send en Octobercms elimina las etiquetas HTML del editor de texto enriquecido?

Estoy utilizando el servicio Mail::send para enviar un correo electrónico desde un formulario de contacto. El cuerpo del correo electrónico es HTML, proporcionado con el richeditor. Tengo una plantilla ‘my.plugin::mail.default’:

<h1>subject = "Sobrescrito"</h1>

<p><p>Hola {{ name }},</p></p>

<p>{{message_body | raw}}</p>

<p><p>Este correo electrónico fue enviado utilizando formato (HTML)</p></p>

<p><code>
y el código para enviar es el siguiente:
</code>
$data=post();
$vars = [
 'subject' => $data['subject'],
 'message_body' =>$data['message'],
 'name'=>'STB '
];
Mail::send('my.plugin::mail.default', $vars, function ($message) use ($vars) {
 $message->to("reciever@email.com");
 $message->subject($vars['subject']);
});

El correo electrónico enviado de esta manera tiene el mensaje HTML eliminado y solo se envía el primer tag (por ejemplo: abc

).

Después de muchas pruebas, descubrí que cuando el HTML tiene el carácter de nueva línea \n (como la variable $html a continuación), Mail::send envía el mensaje correctamente. Sin embargo, cuando el HTML no tiene el carácter de nueva línea (como la variable $html_richeditor a continuación), el mensaje se corta.

$html = '<p>Aenean finibus erat eget maximus luctus. Phasellus vitae lectus dolor. Morbi convallis ex et turpis porttitor mattis morbi convallis ex et turpis porttitor mattis</p>
                <p>Proin porta, nibh eget elementum aliquet, metus elit viverra nisi, vitae ullamcorper elit eros ut urna.</p>
                <br/><br><p>Morbi convallis ex et turpis porttitor mattis.</p>';

$html_richeditor = "<p>Aenean finibus erat eget maximus luctus. Phasellus vitae lectus dolor. Morbi convallis ex et turpis porttitor mattis morbi convallis ex et turpis porttitor mattis</p><p>Proin porta, nibh eget elementum aliquet, metus elit viverra nisi, vitae ullamcorper elit eros ut urna.</p><p><br></p><p><br></p><p>Morbi convallis ex et turpis porttitor mattis.</p>";

¿Alguna idea de cómo puedo enviar todo el HTML desde el richeditor? ¿Debo configurar algo en el richeditor o en el Mail?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el manejo de los caracteres de nueva línea en el HTML proporcionado por el editor enriquecido. Cuando el HTML tiene caracteres de nueva línea, Mail::send es capaz de enviar el mensaje correctamente, pero cuando no están presentes, el HTML se recorta.

    Para resolver esto, una solución podría ser asegurarse de que el HTML proporcionado por el editor enriquecido siempre contenga caracteres de nueva línea. Esto se puede lograr configurando el editor enriquecido para agregar caracteres de nueva línea cada vez que se guarde el HTML.

    Alternativamente, el problema podría estar relacionado con la forma en que Mail::send maneja los mensajes HTML. En este caso, puede ser necesario configurar Mail para manejar correctamente los mensajes HTML, incluso cuando no hay caracteres de nueva línea presentes. Esto podría implicar establecer ciertas opciones o parámetros para Mail::send, o utilizar una biblioteca de envío de correo electrónico diferente que maneje mejor los mensajes HTML.

    En general, sería mejor experimentar con estas soluciones y consultar la documentación de OctoberCMS y Mail::send para encontrar el enfoque más adecuado para su caso de uso particular.

Comments are closed.