Estoy usando Laravel para enviar correos electrónicos y el texto sin formato funciona bien. Sin embargo, tengo problemas para adjuntar imágenes al correo electrónico. A partir de este momento, las imágenes se almacenan en la base de datos como cadenas Base64.
Este es el código que llama a la fachada de Mail en Laravel:
Mail::queue('emails.infraction', $data, function($message) use ($email){
$message -> from($fromEmail, 'Blah);
$message -> to($toEmail) -> subject('Testing');
});
Básicamente, la variable $ data contiene toda la información que mostraré en el correo electrónico HTML que se envía. Puedo acceder a las variables sin problemas cuando las visualizo en el correo electrónico, pero tengo problemas para adjuntar las imágenes base64 en el correo electrónico.
Esto es lo que he probado hasta ahora:
Evidence of Intraction:</p>
<?php
$elementCount = count($photos);
for($x=0; $x<$elementCount; $x++){
echo '<p style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; margin-left: 80px;">';
echo "<img src=" . $message->embedData($data['photos'][$x], 'Blah') . ">";
echo "</p>";
}
?>
Pero como puede ver aquí, gmail no codifica correctamente ese rawDataString en la imagen:
Simplemente se muestra como si hubiera una imagen, pero no el contenido. He verificado la cadena base 64 y es correcta.
¿Cuál podría ser el error?
La documentación de correo de Laravel dice usar algo como esto en el generador de mensajes:
pero estoy un poco perdido sobre cómo hacerlo correctamente. La otra opción sería convertir la cadena base64 en una imagen sobre la marcha y enviarla como un archivo adjunto al usuario, pero no puedo almacenar las imágenes en el servidor y, por lo tanto, tendría que convertirla en una imagen dentro de php y enviarla a través de mailer de laravel sin una ruta de archivo real.
por favor avise
Primero tienes que decodificar la imagen así:
$message->embedData(base64_decode($data['photos'][$x]), 'Blah')
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras