2016-06-28 2 views
0

Я пытаюсь сохранить встроенное изображение из Outlook MailItem (HTML-Body), но я не нашел, в каком свойстве хранится встроенное изображение и как я могу его сохранить ,C#: сохранить встроенное изображение из Outlook MailItem

Я попытался получить изображение из свойства. Привязки (я пробовал индекс 0), но затем вызывается исключение, что индекс массива выходит за пределы диапазона. Это означает, что в E-Mail нет привязки.

Но если изображение не хранится в «Вложениях», где хранится изображение и как его сохранить в файловой системе?

Большое спасибо за ваши ответы!

С наилучшими пожеланиями Matthias

+0

это изображение, фактически сохраненное в объекте mailitem? это может быть ссылка в html тела, которая указывает на какой-то сервер, на котором он фактически хранится. Также вы можете использовать [OutlookSpy] (http://www.dimastr.com/outspy/home.htm) для просмотра объектов Outlook в Outlook и проверки их свойств. –

+0

Да, изображение сохраняется в объекте mailitem. Я вижу это в ссылке в HTML-тексте в HTML-Body. И к несчастью, мне не разрешено устанавливать OutlookSpy на моем ПК. – hias116

+0

Вложения коллекции 1 на основе, а не 0. –

ответ

0

Я нашел решение самостоятельно.

Проблема была в том, что я обращался к MailItem другим потоком. Я не знаю, почему, но из этой темы вы не видите вложения. После помещения части для считывания почты внутри

this.Dispatcher.Invoke(new Action(() => { ... })); 

все работает нормально. Затем вы можете получить доступ к встроенному изображению с помощью этого кода ...

if (mail.Attachments.Count > 0) 
{ 
    for (int i = 1; i <= mail.Attachments.Count; i++) 
    { 
     mail.Attachments[i].SaveAsFile(@"C:\Test\" + mail.Attachments[i].FileName); 
    } 
}