2009-05-05 6 views
3

私はテキストベースの添付ファイル(txt、docなど)を解析しようとしています。しかし、私はバイナリ情報そのものを得ることはできません。私はファイル名を取得することができ、私はいくつかの一時的なフォルダにファイルを保存し、そこから開くことができますが、それは乱雑に思えます。C#Outlook 2007 - アドインから添付ファイルの内容に直接アクセスするにはどうすればよいですか?

添付ファイルの内容にアクセスしてそれを読んだり、削除したり、削除したりすることはできませんか?

答えて

3

償還は、ここであなたを助ける、SafeMailItem.Attachmentsコレクションは、プロパティ「AsText」を持つ添付ファイルオブジェクトを持っている

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

をチェックアウト76mel

+0

199ドルのライセンス料を除いて、それは素晴らしいようです。私はそれのための現金を惜しまないかどうかを見なければならない。 – McAden

+0

Redemptionは、拡張MAPIのラッパーとしての唯一の良い方法であり、複雑さを取り除きます。 – 76mel

3

は、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を参照する必要があります。

+0

PropertyAccessor.GetPropertyは、大きなバイナリ(PR_ATTACH_DATA_BINなど)のプロパティで失敗します。 MAPIレベル(C++またはDelphi)では、ISAttach :: OpenPropertyを使用してIStreamとしてPR_ATTACH_DATA_BINを開く必要があります。 PropertyAccessorはそれをしません。 –

+0

大きなバイナリを指定できるかどうかは、それが対応できないサイズですか? – Aamol

+0

ストアプロバイダーに依存します。オンラインのExchangeストアでは、32kBという低い値にすることができます。 –

関連する問題