作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试附加一个 base64 格式的图像,例如
data:image/jpeg;base64,/9j....
我在 php 中有以下附件代码:
$attachment_encoded5 = $record['upload_file'];
//$attachment_encoded5 = base64_encode($record['upload_file']);
$attachment_array[] =
array(
'type' => 'image/jpeg',
'name' => $record['name'].".jpeg",
'content' => $attachment_encoded5
);
所以现在我在这里做错了什么:- 我是否需要将 dataurl 图像转换为 base64?- 我需要使用任何其他代码来附加图像吗?- 最后,如何将图像附加为内嵌图像?
提前致谢:)请让我知道,因为我有点卡住:(
最佳答案
使用 images
参数将图像作为内联附件包含在您的 API 调用中。您需要提供图像名称 (Content-ID)、内容(作为 base64 编码的字符串)和图像 MIME 类型。在 HTML 内容的“src”中引用图像名称:
<img src="cid:image_name" />
因此您需要将现有数组包装到另一个数组中,即 images
function addInlineImage(){
$image_name=$record['name'].".jpeg";
$attachment=array(
'images'=>
array(
'type' => 'image/jpeg',
'name' => $image_name,
'content' => $attachment_encoded5
)
);
return [$attachment,$image_name];
}
您可以从函数中返回图像名称和附件并使用
list($attachment,$image_name)=addInlineImage();
然后在下面的标签中使用它
<img src="cid:<?=$image_name?>" />
只需确保您在函数 addInlineImages()
中提供的附件是 base64encoded
对于大多数 SMTP 库,包括内联图像都是自动处理的。例如,如果您内联插入图像,则会添加一个 img 标签,该标签随后会引用所附加图像的 Content-ID。如何添加内联图像取决于所使用的 SMTP 库。
关于php - Mandrill:如何将图像附加为内联和附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571469/
我是一名优秀的程序员,十分优秀!