使用 Laravel 发送 Base64 图像
Sending Base64 Images using Laravel
我正在使用 Laravel 发送电子邮件,纯文本工作正常。但是,我在将图像附加到电子邮件时遇到问题。截至目前,图像以 Base64 字符串的形式存储在数据库中。
这是在 Laravel 中调用 Mail facade 的代码:
Mail::queue('emails.infraction', $data, function($message) use ($email){
$message -> from($fromEmail, 'Blah);
$message -> to($toEmail) -> subject('Testing');
});
基本上 $data 变量包含我将在发送的 HTML 电子邮件中显示的所有信息。在电子邮件中显示变量时,我可以很好地访问这些变量,但我在将 base64 图像附加到电子邮件中时遇到问题。
这是我目前尝试过的方法:
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>";
}
?>
但是正如您在这里看到的那样,gmail 没有正确地将原始数据字符串编码到图像中:
它只是显示好像有图片但没有内容。我已经验证了 base 64 字符串,它是正确的。
可能是什么错误?
Laravel 邮件文档说在邮件生成器中使用类似这样的东西:
但我对如何正确地做到这一点有点迷茫。另一种选择是即时将 base64 字符串转换为图像并将其作为附件发送给用户,但我无法将图像存储到服务器中,因此必须将其转换为 php 内的图像并在没有实际文件路径的情况下通过 laravel 邮件发送。
请指教
你必须先像这样解码图像:
$message->embedData(base64_decode($data['photos'][$x]), 'Blah')
我正在使用 Laravel 发送电子邮件,纯文本工作正常。但是,我在将图像附加到电子邮件时遇到问题。截至目前,图像以 Base64 字符串的形式存储在数据库中。
这是在 Laravel 中调用 Mail facade 的代码:
Mail::queue('emails.infraction', $data, function($message) use ($email){
$message -> from($fromEmail, 'Blah);
$message -> to($toEmail) -> subject('Testing');
});
基本上 $data 变量包含我将在发送的 HTML 电子邮件中显示的所有信息。在电子邮件中显示变量时,我可以很好地访问这些变量,但我在将 base64 图像附加到电子邮件中时遇到问题。
这是我目前尝试过的方法:
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>";
}
?>
但是正如您在这里看到的那样,gmail 没有正确地将原始数据字符串编码到图像中:
它只是显示好像有图片但没有内容。我已经验证了 base 64 字符串,它是正确的。
可能是什么错误?
Laravel 邮件文档说在邮件生成器中使用类似这样的东西:
但我对如何正确地做到这一点有点迷茫。另一种选择是即时将 base64 字符串转换为图像并将其作为附件发送给用户,但我无法将图像存储到服务器中,因此必须将其转换为 php 内的图像并在没有实际文件路径的情况下通过 laravel 邮件发送。
请指教
你必须先像这样解码图像:
$message->embedData(base64_decode($data['photos'][$x]), 'Blah')