gpt4 book ai didi

c# - 如何将图像流嵌入到 MailMessage

转载 作者:可可西里 更新时间:2023-11-01 08:00:29 26 4
gpt4 key购买 nike

我在将 Properties.Resources 中的图像嵌入到 MailMessage 时遇到了一些困难,目前该图像未显示在我收到的电子邮件中。

我已经成功地从目录位置嵌入了图像,但如果图像来自内存/应用程序,我会更喜欢。

这是我正在做的事情的简化版本。

 Bitmap b = new Bitmap(Properties.Resources.companyLogo);
MemoryStream logo = new MemoryStream();
b.Save(logo, ImageFormat.Jpeg);



MailMessage newEmail = new MailMessage(from, to);
newEmail.Subject = subject;
newEmail.IsBodyHtml = true;

LinkedResource footerImg = new LinkedResource(logo, "image/jpeg");
footerImg.ContentId = "companyLogo";
AlternateView foot= AlternateView.CreateAlternateViewFromString(body + "<p> <img src=cid:companyLogo /> </p>", null, "text/html");

foot.LinkedResources.Add(footerImg);

newEmail.AlternateViews.Add(foot);

SmtpClient server = new SmtpClient(host, port);
server.Send(newEmail);

最佳答案

好的,我已经解决了这个问题。

我没有使用 BitMap 保存方法,而是将 BitMap 转换为 Byte[] 并将内存流指定为 Byte[]

没用:

 b.Save(logo, ImageFormat.Jpeg);

成功了:

Bitmap b = new Bitmap(Properties.Resources.companyLogo);
ImageConverter ic = new ImageConverter();
Byte [] ba = (Byte[]) ic.ConvertTo(b,typeof(Byte[]));
MemoryStream logo = new MemoryStream(ba);

我认为它与 Bitmap.Save 方法有关,在 MSDN 库中它提到流的偏移量必须为 0。

关于c# - 如何将图像流嵌入到 MailMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261956/

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