C# 如何从outlook addin mailitem正文html获取url

C# 如何从outlook addin mailitem正文html获取url,c#,outlook,add-in,C#,Outlook,Add In,首先,如何获取html消息体, 然后在正文中,我需要获取URL链接、其超链接、文本和URL的域名。嗯,Mailitem.HTMLBody具有电子邮件项目的HTML标记,以便访问它: using Outlook = Microsoft.Office.Interop.Outlook; //--- Outlook.Application outlookApplication = new Outlook.Application(); Outlook.MailItem mailitem = (Outloo

首先,如何获取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);
}
var matches=Regex.matches(myhtml,@');
foreach(匹配中的匹配m)
{
Console.WriteLine(“URL:+m.Groups[“URL”].Value+”--Text=“+m.Groups[“Text”].Value”);
}
上面的正则表达式就是从这个


最后,要获得域名,您可以修改上面的正则表达式,或者创建一个新的正则表达式来完成这项工作

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);
}
var matches=Regex.matches(myhtml,@');
foreach(匹配中的匹配m)
{
Console.WriteLine(“URL:+m.Groups[“URL”].Value+”--Text=“+m.Groups[“Text”].Value”);
}
上面的正则表达式就是从这个


最后,要获得域名,您可以修改上面的正则表达式,或者创建一个新的正则表达式来完成这项工作

Outlook.MailItem mail=项目作为Outlook.MailItem;如果(mail!=null){mail.body},是否有方法检查OutlookMailItem对象mail.Outlook.MailItem mail=项目作为Outlook.MailItem的mail.body项目中的url;如果(mail!=null){mail.body},是否有方法检查OutlookMailItem对象邮件的mail.body项中的url。