如何获得在Outlook电子邮件中使用的特殊HTML代码?

时间:2017-12-15 02:44:11

标签: c# html .net email outlook

我使用SmtpClient以编程方式发送电子邮件。我在MailMessage电话中使用SmtpClient.SendAsync()。我设置了MailMessage.IsBodyHtml = true。

我可以使用像<font>这样的简单html标签,但在使用以下标签时遇到问题:

<svg width="600" height="100">
   <rect x="0" y="0" rx="4" ry="4" width="20" height="50" style="fill:red" />
   <rect x="20" y="0" rx="4" ry="4" width="20" height="100" style="fill:green" />
   <rect x="40" y="0" rx="4" ry="4" width="20" height="100" style="fill:green" />
   <rect x="60" y="0" rx="4" ry="4" width="20" height="100" style="fill:green" />
   Sorry, your browser does not support inline SVG.
</svg>

我的最终目标是发送一封电子邮件,其中包含一个简单的图表,我可以在网页上使用上面的html显示它,但是它没有处理电子邮件我发送的是在Outlook中打开的。

在Microsoft Outlook中显示的电子邮件中似乎不支持{p> <svg><canvas>。还有什么我可以用来获得与上面相同的结果吗?我需要使用哪些特殊标题才能在我发送的电子邮件中支持<svg>和/或<canvas>吗?

我不想在这里过于复杂。我只有一组真/假值,我希望在某种图形中显示。我可以以编程方式绘制一堆矩形或其他任何东西,但需要使用Outlook客户端打开时在电子邮件中实际可见的图形。

1 个答案:

答案 0 :(得分:1)

SVG在Outlook中不起作用。

它无法在Gmail,AOL,Yahoo,Notes,Thunderbird或大多数Android版本中使用。

VML适用于Outlook。它是一种死胡同的技术,有很多支持和很少的例子。只要它不太复杂,它就可以做你喜欢的事。

<!--[if mso]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#" style="height:42px;v-text-anchor:middle;width:500px;" strokecolor="#6f5a95" fillcolor="#563d82">
<w:anchorlock/>
<center style="color:#ffffff;font-family: Arial,sans-serif;font-size:18px;">See Your Choices</center>
</v:rect>
<![endif]-->

你绝对可以制作盒子。图表并不难,但如果你只是让Outlook版本成为jpg图像,你将省去很多麻烦。

我没有一个我在VML中做过的数据点的例子。但是如果你在2000年左右搜索和寻找东西,你可能会找到一个你正在寻找的例子。绝对没有新的例子,因为我不认为即使微软计划在未来支持它。

祝你好运。

延迟添加编辑

我发现该网站提供了如何使用VML创建图表的示例。您可以使用CSS动画并创建适用于大多数电子邮件客户端和Outlook的内容。但如果它没有,你总是这样:

祝你好运。