如何将图表放在smtp电子邮件中

时间:2012-06-01 11:24:17

标签: email charts smtp

我希望在html smtp电子邮件中包含一个饼图。

我首先考虑了一个ASP.NET图表,但这是在前端。然后我想到了High Charts,但我无法为他们附加javascript。最后我决定使用Google Chart API。

我四处搜索,发现如果我将URL放入图片标签,它会将从网址返回的图片放入我的电子邮件中。但我已经做到了这一点,我只得到了“alt”文本。一些谷歌搜索说我需要制作我的smtp HTML。但我也是这样做的,但仍然没有形象。

var mail = new MailMessage();
mail.From = new MailAddress("email@address.com");
mail.To.Add("email@address.com");
mail.Subject = "Chart Test";
mail.Body = "<img src='https://chart.googleapis.com/chart?chs=250x100&chd=t:60,40&cht=p3&chl=Hello|World' alt='chart' />";
mail.IsBodyHtml = true;

var smtp = new SmtpClient();
smtp.Send(mail);

任何建议都将不胜感激。

Ps - 这是我的第一篇文章,所以要温柔大笑

2 个答案:

答案 0 :(得分:0)

我会回过头来确定这件事有什么问题。首先,发送一封带有图像的电子邮件。接下来,我注意到图像的来源是https。使用更简单的HTTPS映像验证是否可以实现。然后,检查您是否甚至可以通过电子邮件包含来自不是您自己的网络服务器的内容(可能与服务器设置有关),这是值得的。

这三个调试步骤将导致您的回答,我希望!

祝你好运!

答案 1 :(得分:0)

我认为你的做法有些错误:

1:您的邮件正文是一个不完整的HTML文档

2:您正在链接外部内容,而不是将图像包含在电子邮件中, 外部图像通常会被垃圾邮件过滤器等阻止。

3:您正在向谷歌发送可能是机密数据

4:你选择的饼图不是循环的,这是故意误导的吗? 是相对于墨水区域的比例, 可见的亚带角,预变形子角, 如果是这样的话,转变是倾斜的还是透视的?

幸运的是,我对asp邮件知之甚少,无法详细说明如何解决这个问题 但为了获得最佳效果,您应该:

1&GT;发送有效的HTML

2 - ;在您的服务器上生成图表并将其与电子邮件中的html一起发送为与多部分相关的

3&GT;将它和文本组合在一起(使用多部分替代)

4&GT;一定要生成一个圆形饼图,如果你想让它看起来不错(特别是打印出来时),请使用SVG等矢量格式而不是像素格式。