使用 .Net 从 URL 捕获渲染的 HTML

发布于 2024-12-21 02:09:25 字数 118 浏览 2 评论 0 原文

是否可以使用某种技术从应用程序内重定向到 URL,并简单地获取将要显示的页面内容,而不是将其呈现为电子邮件或其他方式?我相信我已经见过 InnerHTML 的使用,但这真的是最好的方法吗?对我来说,这似乎有点黑客。 谢谢!

Is it possible to use a technique to redirect to a URL from within an application and simply take the page content that would be displayed but instead render it to email or otherwise? I believe I've seen the use of InnerHTML but is this really the best way? It seems a bit of a hack, to me.
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奢华的一滴泪 2024-12-28 02:09:26

是的,这是可能的。使用 WebClientHttpWebRequest,将其放入Body MailMessage(另请查看 IsBodyHtmlAlternateViews 属性),并使用 Send 它href="http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx" rel="nofollow">SmtpClient

然而,应该创建 URL 处的页面,以便它有很好的机会被电子邮件客户端使用:非常少量的 CSS、基于表格的布局(呃...)、即使在未渲染图像时也具有良好的外观由客户端控制、左对齐文本、无 Javascript、无 Flash、无 Silverlight、无嵌入视频等。请参阅 了解 HTML 电子邮件创建的详细信息。

如果您下载的页面不遵守这些规则,您可能需要在发送之前进行修改。 @Gaby 建议的 HTML Agility Pack 是一个 HTML 解析器,也是最好的工具之一这个目的。

Yes, this is possible. Download the page using a WebClient or an HttpWebRequest, put it into the Body of a MailMessage (also check out the IsBodyHtml and AlternateViews properties), and Send it using an SmtpClient.

However, the page at the URL should be created so it has a good chance to be consumed by e-mail clients: very small amount of CSS, table-based layout (argh...), good look even when images are not rendered by the client, left-aligned text, no Javascript, no Flash, no Silverlight, no embedded videos, etc. See this and this for the details of HTML e-mail creation.

If the page you download does not obey these rules, you may have to modify it before sending. The HTML Agility Pack, which was suggested by @Gaby, is an HTML parser, and one of the best tools for this purpose.

颜漓半夏 2024-12-28 02:09:26

您可能需要检查 Html Agility Pack

You might want to check the Html Agility Pack

假情假意假温柔 2024-12-28 02:09:26

只需使用 WebClient.DownloadFile 方法保存文件,然后对其执行任何您想要执行的操作。

Just use WebClient.DownloadFile method to save the file and then do whatever you wish to do with it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文