将 PNG 图像嵌入到 WPF 中的电子邮件中

本文关键字:WPF 电子邮件 PNG 图像 | 更新日期: 2023-09-27 18:30:28

我在电子邮件中将 PNG 呈现为嵌入式图像时遇到问题。 我要做的就是在电子邮件底部嵌入公司徽标。

图像是我的项目中的资源。

以下是我用来生成电子邮件正文文本和备用视图的代码:

string body =
    @"<html><body><b>Please do not respond to this message</b><br/><br/>" +
     "<img src='cid:companyLogo' width='100px'/></body></html>";
Bitmap logo = new Bitmap(Properties.Resources.logo_dark_background);
MemoryStream logoStream = new MemoryStream();
logo.Save(logoStream, ImageFormat.Jpeg);
LinkedResource companyLogo = new LinkedResource(logoStream);
companyLogo.ContentId = "companyLogo";
companyLogo.ContentType = new ContentType("image/jpg");
AlternateView av = AlternateView.CreateAlternateViewFromString(
    body, null, MediaTypeNames.Text.Html);
av.LinkedResources.Add(companyLogo);
message.AlternateViews.Add(av);

请注意,"消息"是之前创建的MailMessage对象。

将 PNG 图像嵌入到 WPF 中的电子邮件中

问题是保存徽标后,流的位置位于流的末尾。

logo.Save()呼叫后,您可以立即设置logoStream.Position = 0以将其重置为开头。

另外,不要忘记处理您的流,很可能是在using语句中。