【问题标题】:Access embedded images访问嵌入的图像
【发布时间】:2017-06-17 02:46:03
【问题描述】:

我们在 C# 应用程序中使用 GMail Api,并且收到了一条带有嵌入图像的消息。 如果您查看 GMail 帐户(作为用户在浏览器中),您可以看到该图像,但我无法在 Payload 中找到它,也无法在使用 api 时获取附件 ID。

这个 api 是否甚至支持访问嵌入的图像?

如果我使用:

var part = message.Payload.Parts
                            .Where(x => x.MimeType.Equals(mimeType))
                            .Select(x => x.Body.Data)
                            .FirstOrDefault();

将 Mime 类型设置为 Gif、Jpeg 或 Tiff 时,它总是返回 null;

【问题讨论】:

  • 您在这里使用了某种 .Net API,请用它标记您的问题。
  • 当您以Gif, Jpeg or Tiff 传递mime-type 时,您是否将它们作为正确的image/gif mime-type 传递?也许尝试x.MimeType.Contains("image") 获取所有图像格式。

标签: c# .net gmail-api


【解决方案1】:

您可能需要检查 - Users.messages: get

获取指定的消息。

在阅读电子邮件消息资源表示时特别熟悉结构。我使用Try it now 在响应正文中获取Users.messages resource 以及它将如何形成。

检查邮件时,嵌入的图片会落入payload中。

........
    {
        "partId": "1",
        "mimeType": "image/png",
        "filename": "pasted1",
        "headers": [
         {
          "name": "Content-Type",
          "value": "image/png; name=pasted1"
         },
.........

这就是它应该的样子。

希望这会有所帮助。

【讨论】:

  • 各位感谢您的及时回复。所以我今天早上做了更多检查。在这两种情况下,我们都收到了两封电子邮件,它们似乎都嵌入了图像。在一种情况下,它是一个“图像/png”并且也有 part.Body.AttachmentId 所以一切都很好,我可以使用 api 将它提取出来。在另一种情况下(提示问题),如果我遍历所有部分,则没有图像,但是当您在浏览器中的 GMail 中查看此电子邮件时,您可以看到嵌入的图像(也似乎是 png) . Api 中可能存在某种错误。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多