usingSystem;usingSystem.Linq;usingMicrosoft.Office.Interop.Outlook;usingSystem.Collections.Generic;namespaceEmailReceiver
{classProgram
{static ApplicationClass outlookApp = newMicrosoft.Office.Interop.Outlook.ApplicationClass();staticNameSpace ns;static void Main(string[] args)
{
Console.WriteLine("start to monitor new emails");
ns= outlookApp.GetNamespace("MAPI");
outlookApp.NewMailEx+= newApplicationEvents_11_NewMailExEventHandler(outlookApp_NewMailEx);
outlookApp.NewMail+= newApplicationEvents_11_NewMailEventHandler(outlookApp_NewMail);while (true)
{
}
}static voidoutlookApp_NewMail()
{
Console.WriteLine("a new message comes: new email");
}static void outlookApp_NewMailEx(stringEntryIDCollection)
{
Console.WriteLine("a new message comes");
AnalyzeNewItem(EntryIDCollection);
}private static void AnalyzeNewItem(stringentry)
{var inbox =ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
List allmails = new List();foreach (var item ininbox.Items)
{if (item isMailItem)
{var mail = item asMailItem;
allmails.Add(mail);
}
}var latest = allmails.Max(s =>s.ReceivedTime);var latestMailItem = allmails.FirstOrDefault(s => s.ReceivedTime ==latest);if (latestMailItem != null)
{
Console.WriteLine(latestMailItem.Subject);
Console.WriteLine(latestMailItem.To);
Console.WriteLine(latestMailItem.SenderName);
Console.WriteLine(latestMailItem.ReceivedTime);
Console.WriteLine(latestMailItem.Body);
}
}
}
}