在电子邮件中嵌入 HTML img 的附件

Embed Attachment to HTML img in an email

我正在使用一个用于单元测试的文件和一个资源文件 ("WorkflowNotifications.resx"),其中包含带有 HTML 代码的字符串和一个 png 图像 ("mail_header.png")。在 HTML 代码中是一张图片,应该是资源文件中的图片。我的目标是将此图像引用到 img 属性的源链接。在这样做时,我应该使用附件 class。我不知道如何处理我初始化的 Attachment 对象以及如何将它添加到源链接。我知道在这个主题上有一个类似的 post,但我的更具体一些,因为我不应该在 HTML 代码中直接引用图像。感谢您的宝贵时间和帮助!

html img代码:

<img src="cid:"{0}" >

目前我在单元测试方法中使用string.Format替换占位符,但是图片显示不出来

获取流的帮助方法:

public static Stream GetMailHeader()
    {
        return ToStream((Image)MailTemplates.WorkflowNotifications.ResourceManager.GetObject("mail_header"), ImageFormat.Png);
    }

    private static Stream ToStream(Image image, ImageFormat format)
    {
        var stream = new System.IO.MemoryStream();
        image.Save(stream, format);
        stream.Position = 0;
        return stream;
    }

单元测试方法中的附件对象:

var att = new Attachment(Resources.ResourceGovernor.GetMailHeader(), "mail_header");

ResourceGoverner 只是一个处理大部分资源的 class,而 WorkflowNotifications 是资源文件。

我自己找到了解决办法。对于所有遇到类似问题的人: 只需通过以下方式将附件添加到您的 MailMessage:

mailMessage.Attachments.Add(att);

并将 html 代码更改为:

<img src="mail_header.dat">