C# Outlook 2007 — как получить доступ к содержимому вложения непосредственно из моей надстройки?

Я пытаюсь разобрать вложения текстовых файлов (txt, doc и т. д.). Однако я не могу добраться до самой двоичной информации. Я могу получить имя файла, сохранить файл во временной папке и открыть его оттуда, но это выглядит беспорядочно.

Есть ли способ получить доступ к содержимому вложения, не сохраняя его, не читая, а затем удаляя, или я просто гоняюсь за своим хвостом?


person McAden    schedule 05.05.2009    source источник


Ответы (2)


Здесь вам поможет Redemption, в коллекции SafeMailItem.Attachments есть объект Attachment со свойством "AsText" проверить

http://www.dimastr.com/redemption/

76мел

person 76mel    schedule 06.05.2009
comment
За исключением платы за лицензию в размере 199 долларов, которая кажется отличной. Я должен посмотреть, смогу ли я выделить на это деньги. - person McAden; 06.05.2009
comment
Redemption — единственный хороший способ, поскольку он является оболочкой расширенного MAPI и устраняет сложность. - person 76mel; 06.05.2009

Вы можете получить содержимое вложения, используя схему Microsoft -

   private void GetAttachmentContent(Attachments attachments)
    {
        foreach (Attachment attachment in attachments)
        {
            //microsoft schema to get the attachment content
            string AttachSchema = "http://schemas.microsoft.com/mapi/proptag/0x37010102";
            byte[] filebyte = (byte[])attachment.PropertyAccessor.GetProperty(AttachSchema);
        }
    }

Вам нужно указать: Microsoft.CSharp.dll в файле кода

person Aamol    schedule 03.08.2015
comment
PropertyAccessor.GetProperty завершится ошибкой для больших двоичных свойств (таких как PR_ATTACH_DATA_BIN). На уровне MAPI (C++ или Delphi) PR_ATTACH_DATA_BIN должен быть открыт как IStream с помощью ISAttach::OpenProperty. PropertyAccessor этого не делает. - person Dmitry Streblechenko; 03.08.2015
comment
Можете ли вы указать большие двоичные средства, с каким размером они не справятся? - person Aamol; 03.08.2015
comment
Это зависит от поставщика магазина. Для интернет-магазина Exchange он может составлять всего 32 КБ. - person Dmitry Streblechenko; 03.08.2015