【发布时间】:2014-02-07 16:34:14
【问题描述】:
首先,如何获取html消息体, 然后在正文中,我需要获取 URL 链接、其超链接、文本和 URL 的域名。
【问题讨论】:
首先,如何获取html消息体, 然后在正文中,我需要获取 URL 链接、其超链接、文本和 URL 的域名。
【问题讨论】:
好吧,Mailitem.HTMLBody 有电子邮件项目的 HTML 标记,所以要访问它:
using Outlook = Microsoft.Office.Interop.Outlook;
//---
Outlook.Application outlookApplication = new Outlook.Application();
Outlook.MailItem mailitem = (Outlook.MailItem)outlookApplication.ActiveInspector().CurrentItem;
string myhtml = mailitem.HTMLBody;
然后你需要解析出链接。假设它们实际上被编码为锚标签,您可以使用如下的正则表达式作为起点:
var matches = Regex.Matches(myhtml, @"<a\shref=""(?<url>.*?)"">(?<text>.*?)</a>");
foreach (Match m in matches)
{
Console.WriteLine("URL: " + m.Groups["url"].Value + " -- Text = " + m.Groups["text"].Value);
}
以上是正则表达式来自这个MSDN question
最后,要获取域名,您可以修改上面的正则表达式,或者创建一个URI 来为您完成这项工作。
【讨论】: