0

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

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

我四处搜索,发现如果我将 URL 放入图像标签中,它会将 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 - 这是我的第一篇文章,所以请温柔哈哈

4

2 回答 2

0

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

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

祝你好运!

于 2012-06-01T11:32:31.840 回答
0

我认为您的方法有问题的一些事情是:

1:你的邮件正文是一个不完整的html文档

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

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

4:你选择的饼图不是圆形的,这是故意误导吗?相对于着墨区域的比例、可见的细分角度、转换前的细分角度,如果是,是转换倾斜还是透视?

不幸的是,我对 asp 邮件的了解还不够,无法详细说明如何解决该问题,但为了获得最佳结果,您应该:

1> 发送有效的 HTML

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

3> 将它和一个文本组合成一个版本(使用多部分替代)

4> 一定要生成一个圆形饼图,如果你想让它看起来不错(尤其是打印出来的时候),请使用像 SVG 这样的矢量格式而不是像素格式。

于 2013-12-10T02:54:44.170 回答