Загрузка имен файлов вложений без вложений в c # - PullRequest
0 голосов
/ 24 августа 2011

Во-первых, извините за мой английский.

Я бы хотел отобразить список имен файлов вложений в почтовом ящике.Затем из этого списка пользователи могут выбрать, какие вложения они хотят загрузить на жесткий диск, например, например, в этой программе: http://www.mailresender.com.ar/Read.html

Я уже написал это в Koolwired.Imap:

for (int i = 0; i < mbStructure.BodyParts.Count; i++) // i = number of parts of body
{
     if (mbStructure.BodyParts[i].Attachment)
     {
         mbStructure = command.FetchBodyPart(mbStructure, i);
         System.Console.WriteLine(mbStructure.BodyParts[i].Disposition); // Disposition contains file name
         //System.Console.WriteLine(mbStructure.BodyParts[i].Data); //  Data contains entire file
      }
}

но проблема в том, что в память загружается не только имя файла, но и двоичный файл данных (весь файл вложений загружается методом FetchBodyPart ), поэтому если файлы во вложении имеют большой размер (например, 20МБ) все эти 20 МБ также должны быть загружены в память, поэтому отображение списка имен файлов будет длиться очень и очень долго.

Можно ли загрузить только имена файлов вложений без файлов?Какая библиотека в c # может это поддерживать?

1 Ответ

0 голосов
/ 29 августа 2011

Ответ на ваш вопрос: ImapCommand.FetchBodyStructure , но, когда я просматриваю источник, держу пари, он не получится в некоторых письмах.

Вы также можете взглянуть на Mail.dll IMAP компонент особенно этот блог может быть полезен:

http://www.lesnikowski.com/blog/index.php/get-email-information-from-imap-fast/

Обратите внимание, что Mail.dll - коммерческий продукт, который я создал.

...