【问题标题】:Embed byte array data as image to email将字节数组数据作为图像嵌入电子邮件
【发布时间】:2021-06-24 01:55:52
【问题描述】:

我尝试嵌入 base64 类型但无法正常工作。图片未显示在电子邮件中。

string imreBase64DataHeader = LogoFromByteArray(_org.O_Logo);
image = "<img src='data:image/png;base64," + imreBase64DataHeader + "' alt='img' />";
body += string.Format("<div>{0}</div> <br/><br/>", image);

注意:我的电子邮件中已经有一个 pdf 附件。

徽标以字节数组的形式保存在数据库中,我需要将其添加到电子邮件签名中。

提前感谢您的帮助。

【问题讨论】:

标签: c# arrays image email


【解决方案1】:

桌面版 Outlook 不支持 Base64 图像。相反,您需要将图像保存在磁盘上,然后将其附加到电子邮件中。然后在邮件正文中,您可以使用cid: 前缀引用此类附件:

.Attachments.Add "C:\Users\JoeSchmo\Pictures\ImageName.jpg", olByValue, 0
.HTMLBody = "<BODY><IMG src=""cid:ImageName.jpg"" width=200> </BODY>"

您还可以考虑在附件上设置以下属性:

Const PR_ATTACH_MIME_TAG = "http://schemas.microsoft.com/mapi/proptag/0x370E001E"
Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"
Const PR_ATTACHMENT_HIDDEN = "http://schemas.microsoft.com/mapi/proptag/0x7FFE000B"

Set oPA = Attachment.PropertyAccessor
oPA.SetProperty PR_ATTACH_MIME_TAG, "image/jpeg"
oPA.SetProperty PR_ATTACH_CONTENT_ID, "cidName"
oPA.SetProperty PR_ATTACHMENT_HIDDEN, True

Embed Images in New Messages using a Macro 文章中了解更多信息。

【讨论】:

    【解决方案2】:

    你必须先将字节数组转换为base64编码的字符串。

    试试这个代码。

    string imageTag = "<img id ='Icon' src='data:image/*;base64,"+(Convert.ToBase64String(imageByte))+"' >";
    

    此外,如果您使用 Outlook 作为您的电子邮件客户端,您可能需要在电子邮件预览中下载图像。

    【讨论】:

      猜你喜欢
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      相关资源
      最近更新 更多