1

ユーザーがメールを書いたり、添付ファイルを追加したりできるOutLookクライアントを開くことを目的とするプログラムを作成しました。送信後、メールに追加されたすべての添付ファイルとプログラム内のすべてのメールを取得したいと思います。クローズイベントを処理しようとしました

((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)email.oMsg).Close += new Microsoft.Office.Interop.Outlook.ItemEvents_10_CloseEventHandler(GetAttachmentsInfo);

その後

    if (email.oMsg.Attachments.Count > 0)
    {
        foreach (Microsoft.Office.Interop.Outlook.Attachment at in email.oMsg.Attachments )
        { attachments.Add(at); }
    }



     email is OutlookEMail
oMsg is Email Item
attachments is List<Attachment>

しかし、クライアントの添付ファイルを閉じると、オブジェクトが見つからないという例外がスローされます。リストのこれらと同様に。

Microsoft.Office.Interop.Outlook.Attachment はファイルではなく、名前とサイズを含むこのファイルへのパスのようなものに過ぎないことを知っています。質問:プログラムでクライアントを閉じた後に添付ファイルを保存することは可能ですか? (時間とコンピュータ容量を使用するため、Email.SaveAttachments os SaveEmail メソッドを使用せずに)?

4

1 に答える 1

0

試すことができる他の2つのオプションを次に示します。

1.経由でフォルダへMailItemの追加を聞くことができます。SentItemsFolder.ItemAdd

Outlook.Folder sentItems = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder;
sentItems.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(GetAttachmentsInfo);

2. イベントに添付できMailItem.Sendます。

((Outlook.ItemEvents_10_Event)MailItem).Send  += new Outlook.ItemEvents_10_SendEventHandler(GetAttachmentsInfo);
于 2012-06-28T13:39:15.793 に答える