使用 .Net 从 URL 捕获渲染的 HTML
是否可以使用某种技术从应用程序内重定向到 URL,并简单地获取将要显示的页面内容,而不是将其呈现为电子邮件或其他方式?我相信我已经见过 InnerHTML 的使用,但这真的是最好的方法吗?对我来说,这似乎有点黑客。 谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,这是可能的。使用
WebClient
或HttpWebRequest
,将其放入的
(另请查看Body
MailMessageIsBodyHtml
和AlternateViews
属性),并使用 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 anHttpWebRequest
, put it into theBody
of aMailMessage
(also check out theIsBodyHtml
andAlternateViews
properties), andSend
it using anSmtpClient
.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.
您可能需要检查 Html Agility Pack
You might want to check the Html Agility Pack
只需使用
WebClient.DownloadFile
方法保存文件,然后对其执行任何您想要执行的操作。Just use
WebClient.DownloadFile
method to save the file and then do whatever you wish to do with it.