如何使用python将HTML从电子邮件安全地显示在Web浏览器中?

显示时不应遵循任何外部参考。换句话说,所有显示的内容都应来自电子邮件,而不是来自互联网。

除垃圾邮件外,电子邮件应尽可能与作者所希望的一样尽可能地显示。

我想避免自己编码。

需要最新浏览器(firefox)版本的解决方案也是可以接受的。

有帮助吗?

解决方案

html5lib 包含HTML + CSS清理程序。它目前允许太多,但修改它以匹配用例不应该太难。

这里找到它。

其他提示

我对<!>“安全<!>”的确切含义并不十分清楚。这是一个非常大的话题......但是,值得的是:

在我看来,从ActiveState Cookbook中剥离解析器是最简单的方法之一解决方案。您几乎可以复制/粘贴该类并开始使用它。

同时查看评论。最后一个说它不再起作用了,但我也在某个应用程序中运行它并且它工作正常。从工作开始,我无法访问那个盒子,因此我必须在周末查看它。

使用HTMLparser模块,或安装BeautifulSoup,并使用它们来解析HTML并禁用或删除标记。这将留下任何链接文本,但它不会突出显示,也不会被点击,因为您使用Web浏览器组件显示它。

您可以通过将<A></A>替换为<SPAN></SPAN>并更改文本修饰以显示链接的位置来更清楚地完成所做的工作。也许是与正常情况不同的蓝色阴影和虚线下划线表示破碎。这样你就可以更接近于按照预期显示它而不会误导人们点击不可点击的东西。您甚至可以在 Javascript 纯CSS 会弹出一个工具提示,说明出于安全原因已禁用链接。

使用<IMG></IMG>标签可以完成类似的操作,包括用空白矩形替换它们以确保页面布局接近原始布局。

我用美丽的汤做了类似的事情,但HTMLparser包含在内蟒蛇。在较旧的Python发行版中,有一个htmllib现在已被弃用。由于电子邮件中的HTML可能不完全正确,因此请使用Beautiful Soup 3.0.7a,这样可以更好地理解破坏的HTML。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top