2017-03-01 12 views
0

私はオフィス向けにVisual Studioツールを使用してOutlook 2010(Windowsデスクトップ版)のアドインを作成しています。 Outlookクライアントに交換メールが設定されています。 私は、ユーザーが交換サーバーからメッセージを削除することを許可します。 交換用のWebサービスを使用するかサードパーティ製のライブラリを使用する必要があると思いますが、これを行うには、交換用のメール設定を自分のアドインに再指定する必要があります。これを避けたい。Exchange ServerからOutlookアドインからメールメッセージを削除する

いくつかのOutlookまたはVSTO APIを呼び出すことでこれを行う簡単な方法があるかどうかは、基本的に私のアドインのコードからこれらのメッセージをサーバーから削除するようOutlookに指示する方法を探しています。 私はVSTOのドキュメントを検索しようとしましたが、結果は得られませんでした。

+0

これらの電子メールはメールボックス内のフォルダにありますか? –

+0

はい、彼らは交換されています - Outlook Webインターフェイス(owa)にログインして自分の受信トレイにあるメールを見ることができるように –

+0

あなたの質問にあまり読んでいるかもしれませんが、 Outlookオブジェクトモデルを使用したOutlookコンテンツの管理すべてのアイテム(MailItem、AppointmentItemなど)にはDeleteメソッドがあります。それはあなたの質問に答えますか? –

答えて

0

Exchangeプロファイルに対してキャッシュモードが有効かどうかは不明ですが、OutlookアイテムのDeleteメソッドを使用できます。 Deleteメソッドは、コレクション内の単一のアイテムを削除します。注:Deleteメソッドは、アイテムを含むフォルダから[削除済みアイテム]フォルダに移動します。含まれているフォルダが[削除済みアイテム]フォルダの場合、削除メソッドはアイテムを永久に削除します。

Outlookでキャッシュモードを有効にしている場合は、サーバーと同期してアイテムを消去する必要もあります。 SyncObject.Startメソッドは、指定された送信/受信グループを使用してユーザーのフォルダーの同期を開始します。たとえば、VBAマクロでは次のようになります。

Public Sub Sync() 
    Dim nsp As Outlook.NameSpace 
    Dim sycs As Outlook.SyncObjects 
    Dim syc As Outlook.SyncObject 
    Dim i As Integer 
    Dim strPrompt As Integer 
    Set nsp = Application.GetNamespace("MAPI") 
    Set sycs = nsp.SyncObjects 
    For i = 1 To sycs.Count 
    Set syc = sycs.Item(i) 
    strPrompt = MsgBox(_ 
     "Do you wish to synchronize " & syc.Name &"?", vbYesNo) 
    If strPrompt = vbYes Then 
     syc.Start 
    End If 
    Next 
End Sub 
関連する問題