2014-01-18 2 views

ответ

4

Ну, 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, чтобы выполнить эту работу за вас.

+0

Outlook.MailItem mail = элемент как Outlook.MailItem; если (почта! = NULL) { mail.body } Есть ли способ, чтобы проверить URL в mail.body пункта объекта OutlookMailItem почты. – IamKarim1992

Смежные вопросы