新しい場所に保存せずにC#でOutlook電子メールの添付ファイルにアクセスするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1608507

質問

C#で Microsoft.Office.Interop.Outlook を使用してメールボックスにアクセスし、特定の添付ファイル付きのメッセージを検索しています。添付ファイルを操作する必要があります。

現在、ファイルを新しい場所に保存し、そこからアクセスしています。このコピープロセスは私を遅くしています。メモリ内のどこからでもファイルにアクセスしたいのですが、 Outlook.Attachment.PathName フィールドがnullを返しています。

メッセージはExchangeサーバーに保存されています。

ファイルに直接アクセスすることは可能ですか、それともファイルの保存を続ける必要がありますか?

役に立ちましたか?

解決

Outlook.Attachment.PathName はディスクの場所を意味します。添付ファイルはファイルです。やり取りする場合は、ファイルのように扱う必要があります。つまり、ローカルディスクに保存する必要があります。

Outlook.Attachment オブジェクトには、実際には添付ファイルが含まれていません。添付ファイルへのリンクとメタデータが関連付けられています。

他のヒント

Outlook Object Modelを介して何らかの方法で可能かどうかはわかりませんが、MAPIで確実に可能になります。

IMessage であるメッセージ MAPIObject を開く必要があります。そこから IMessage :: OpenAttach() IAttach を返します。 。
添付ファイルのサイズは PR_ATTACH_SIZE に格納され、実際のデータは PR_ATTACH_DATA_BIN に格納されます。

いつものように、償還の方が簡単な方法でしょう。

編集:
とにかくOutlookは内部的にMAPIを介してアクセスします-少なくともExchangeキャッシュモードを使用する場合は、かなり高速でなければなりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top