2010-10-10 4 views
7

Я пытаюсь понять, как перетащить письмо из Outlook 2010 в мое приложение .NET. Я видел немало статей, большинство из которых были очень сложными. Я думал, что это не должно быть так сложно ... но я могу ошибаться.Как перетащить письмо из Outlook в приложение .NET?

Любая помощь была бы высоко оценена!

+0

Я ищу то же самое. Вы нашли идеальное решение? –

ответ

5

Простейшее решение было выложено здесь: Get body from Outlook email [Drag’n’Drop]

Outlook.Application outlook = new Outlook.Application(); 
Outlook.Explorer oExplorer = outlook.ActiveExplorer(); 
Outlook.Selection oSelection = oExplorer.Selection; 

foreach (object item in oSelection) 
{ 
    Outlook.MailItem mi = (Outlook.MailItem)item; 
    Console.WriteLine(mi.Body.ToString()); 
} 

Он использует Microsoft.Office.Interop.Outlook.dll. (Это одно имя NuGet)

0

Два ответа выше, оба хороши. Однако есть несколько вещей, которые вам нужно знать.

В первом ответе вы можете загрузить образец программы и запустить его, и вы обнаружите, что все работает отлично, пока вы запускаете его на 32-битном компьютере, иначе вам придется перекомпилировать свою программу из «AnyCPU», на «X86». Я провел большую часть сегодняшнего дня, пытаясь понять, почему первые два символа имени файла .msg (из писем), которые я перетаскивал, отсутствовали. Как только я перекомпилировал с «X86», все стало работать.

Во втором ответе вы найдете, что да, вы можете использовать код, и это намного проще, если вам нужно, чтобы ваше приложение запускалось в другой версии Outlook (кроме той, которую вы добавили в свою ссылки), вероятно, это не сработает. Раньше я использовал те же объекты Office, о которых упоминалось во втором ответе, и я столкнулся с проблемами все время, когда кто-то хотел использовать мою программу в другой версии Office (т. Е. Если я вытащил в Office версии 14, и они хотели используйте его в Office 2007).

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