C# 如何在邮件的html正文中放置自行创建的位图

C# 如何在邮件的html正文中放置自行创建的位图,c#,html-email,email-attachments,C#,Html Email,Email Attachments,具体问题如下: 我正在创建一个位图对象,我想通过电子邮件发送它。我不想在之前保存它或将其上载到Web服务器。只需附加它,然后在邮件的html正文中链接附件。 我已经搜索了很长一段时间,我所能找到的答案是,图片存储在文件系统或服务器上 那么,在不保存图像的情况下,有没有办法做到这一点 谢谢 编辑: 我试了一下,终于找到了这个解决方案: MailMessage mail = new MailMessage(); mail.To.Add(new Mail

具体问题如下: 我正在创建一个位图对象,我想通过电子邮件发送它。我不想在之前保存它或将其上载到Web服务器。只需附加它,然后在邮件的html正文中链接附件。 我已经搜索了很长一段时间,我所能找到的答案是,图片存储在文件系统或服务器上

那么,在不保存图像的情况下,有没有办法做到这一点

谢谢

编辑: 我试了一下,终于找到了这个解决方案:

            MailMessage mail = new MailMessage();
            mail.To.Add(new MailAddress("xxx@yyy.de"));
            mail.From = new MailAddress("xxx@yyy.de");
            SmtpClient sender = new SmtpClient
            {
                Host = "smtp.client",
                Port = 25
            };
            mail.Subject = "test";

            body= "blablabla<br><img alt=\"\" hspace=0 src=\"cid:ImagedId\" align=baseline border=0 ><br>blablabla";
            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, null, "text/html");

            using (System.IO.MemoryStream image = new System.IO.MemoryStream())
            {
                Bitmap diagram = new Bitmap("C:\\qwer.bmp");
                diagram.Save(image, System.Drawing.Imaging.ImageFormat.Jpeg);
                LinkedResource resource = new LinkedResource(image, "image/jpeg");
                resource.ContentId = "ImageId";
                resource.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
                htmlView.LinkedResources.Add(resource);
                mail.AlternateViews.Add(htmlView);

                sender.Send(mail);
            }
MailMessage mail=newmailmessage();
mail.To.Add(新邮件地址(“xxx@yyy.de"));
mail.From=新邮件地址(“xxx@yyy.de");
SmtpClient发送方=新SmtpClient
{
Host=“smtp.client”,
端口=25
};
mail.Subject=“test”;
body=“blablabla

blabla”; AlternateView htmlView=AlternateView.CreateAlternateView-FromString(正文,null,“文本/html”); 使用(System.IO.MemoryStream image=new System.IO.MemoryStream()) { 位图图=新位图(“C:\\qwer.bmp”); 保存(图像、系统、绘图、成像、图像格式、Jpeg); LinkedResource资源=新的LinkedResource(图像,“图像/jpeg”); resource.ContentId=“ImageId”; resource.transferncode=System.Net.Mime.transferncode.Base64; htmlView.LinkedResources.Add(资源); mail.AlternateViews.Add(htmlView); 发送者。发送(邮件); }
但是现在我的邮件客户端(Lotus Notes)没有打开邮件,错误是:“没有mime数据”。
你知道如何解决这个问题吗?

试着在Word中创建它(无论是图像还是整个电子邮件),然后拖动它,复制并粘贴到Outlook中。我认为自动附加图像以及嵌入图像。

可能会有所帮助。这里有一些很好的答案。谢谢,这个问题让我走上了正确的轨道。现在只需要解决“没有mime数据”的问题…谢谢你的建议。但我正在运行时创建映像,无法手动处理它们