【发布时间】:2014-01-13 11:19:51
【问题描述】:
所以我知道这是一个广泛讨论的主题,但是在我读过的所有主题中我还没有找到解决方案,因此是新主题
所以基本上我有一个 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);
感谢大家的帮助,
疯了
【问题讨论】:
标签: c# image email embed attachment