gpt4 book ai didi

html - 无法使用 Gmail API + rails 在 HTML 中显示嵌入式图像

转载 作者:技术小花猫 更新时间:2023-10-29 12:08:37 25 4
gpt4 key购买 nike

我正在构建一个应用程序,我在其中使用 Gmail API 从 Gmail 中获取电子邮件.

在一封电子邮件中,有 1 张图像直接嵌入到电子邮件正文中(内联图像不是附件)。我能够提取 text/html 部分,它在浏览器上正确显示,但如果是内联图像,它显示的是损坏的图像。

在图片标签中显示为

<img src=\"cid:ii_jfi5vwc30_1628627122d12121\" width=\"454\" height=\"255\">

它在 src 中提供内容 id 而不是图像 url。有谁知道我应该如何在浏览器页面中使用 cid 显示内联图像。我应该如何从 cid 获取 base64 格式的图像?

最佳答案

cid: 用于引用附加到多部分电子邮件的图像,因此图像是电子邮件的附件,而不是内嵌在电子邮件中。这意味着要显示您的图像,您必须查找哪个附件包含引用图像。

您的 cid URL 对应于 Content-ID MIME header看起来像这样:

Content-ID: <ii_jfi5vwc30_1628627122d12121>

Gmail API 应该给你一个看起来像这样的响应:

{
"parts": [
// ... other parts ...
{
"partId": "1",
"mimeType": "image/png",
"filename": "",
"headers": [
{
"name": "Content-ID",
"value": "<ii_jfi5vwc30_1628627122d12121>"
},
{
"name": "Content-Type",
"value": "image/png"
},
{
"name": "Content-Transfer-Encoding",
"value": "base64"
}
],
"body": {
"size": 9999,
"data": "R0lGODlhGAGgAPEAAP...(the original base64 encoded image)",
}
}
// ... other parts ...
]
// ... rest of response ...
}

为了显示图像,您需要返回响应对象并找到 headernameContent-IDii_jfi5vwc30_1628627122d12121value,然后解析对象以读取其 body.data,这是 base64 编码的图像你想要的。

如果回复不包含这部分,则意味着原始电子邮件格式不正确或相关图像未以某种方式正确附加到电子邮件,然后你就不走运了,无法呈现原始图像。

关于html - 无法使用 Gmail API + rails 在 HTML 中显示嵌入式图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49629310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com