C# 如何在电子邮件中嵌入图像而不是外部文件?

C# 如何在电子邮件中嵌入图像而不是外部文件?,c#,image,email,embed,attachment,C#,Image,Email,Embed,Attachment,所以我知道这是一个被广泛讨论的话题,尽管如此,在我读过的所有帖子中,我还没有找到解决方案,因此有了新的话题 所以基本上我有一个c winform应用程序来创建团队活动的报告 当然我想邮寄这些报告 问题是我读过/尝试过的所有讨论嵌入外部文件bmp、gif、jpeg中的图像的线程 我一直试图做的是嵌入运行时图形图表组件中的图像 例如,我可以做的是将图表捕获到bmp,并将其流式传输到windows剪贴板,然后粘贴到邮件正文中 当然,目标是自动实现这一点,但我找不到任何地方如何在邮件正文中包含我的运行时

所以我知道这是一个被广泛讨论的话题,尽管如此,在我读过的所有帖子中,我还没有找到解决方案,因此有了新的话题

所以基本上我有一个c winform应用程序来创建团队活动的报告 当然我想邮寄这些报告

问题是我读过/尝试过的所有讨论嵌入外部文件bmp、gif、jpeg中的图像的线程

我一直试图做的是嵌入运行时图形图表组件中的图像

例如,我可以做的是将图表捕获到bmp,并将其流式传输到windows剪贴板,然后粘贴到邮件正文中

当然,目标是自动实现这一点,但我找不到任何地方如何在邮件正文中包含我的运行时图表

我遇到的主要问题是,每当我尝试向链接的资源项添加流时,我都会遇到令人沮丧的GDI++错误

这是我的最新测试:

           string htmlBody = "<html><body><p>report</p>";

            AlternateView view = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Image.Jpeg);

            foreach (ChartModuleModel item in _checkedListBox.CheckedItems)

            {

                string itemStr = item.ToString();

                MemoryStream ms = new MemoryStream();

                item.Chart().SaveImage(ms, ChartImageFormat.Jpeg);

                LinkedResource res =

                    new LinkedResource(ms, MediaTypeNames.Image.Jpeg);

                res.ContentId = itemStr;

                view.LinkedResources.Add(res);

                htmlBody += "<p>chart : " + itemStr + "</p>";

                htmlBody += "<img src=\"cid:" + itemStr + "\">";

            }



            htmlBody += "</body></html>";

            MailMessage mail = new MailMessage();

            mail.AlternateViews.Add(view);

            mail.From = new MailAddress(_mailToTextBox.Text);

            mail.To.Add(new MailAddress(_mailToTextBox.Text));

            mail.Subject = _mailSubjectTextBox.Text;



            SmtpClient client = new SmtpClient();

            client.Port = 25;

            client.Host = "smtp-goss.int.world.socgen";

            client.Send(mail);  
谢谢大家的帮助


疯狂的

据我所知,在电子邮件中嵌入图像的唯一方法是Base64编码。-它还链接到其他资源


这是针对php的,但也可能有帮助。

请看下面的答案: