1

メールアイテムを作成して、他のユーザーのドラフトフォルダに保存しようとしています。ドラフトを作成することはできますが、他のユーザー用ではなく、自分のドラフトフォルダーにのみ保存されます。他のユーザーのメールボックスに対して十分な権限があります。

これはこれまでの私のテストコードです:

        Dim omApp As New Outlook.Application

        Dim omNamespace As Outlook.NameSpace = omApp.GetNamespace("MAPI")

        Dim omUser As Outlook.Recipient = omNamespace.CreateRecipient("otheruser@mail.com")
        omUser.Resolve()
        If Not omUser.Resolved Then
            MsgBox("Could not login.")
        End If

        Dim omDrafts As Outlook.MAPIFolder = omNamespace.GetSharedDefaultFolder(omUser, Outlook.OlDefaultFolders.olFolderDrafts)
        Dim omMailItem As Outlook.MailItem = CType(omDrafts.Items.Add, Outlook.MailItem)

        With omMailItem
            .SentOnBehalfOfName = "otheruser@mail.com"
            .To = "bill@gates.com"
            .Subject = "Test"
            .Body = "Test email"
            .Save()
        End With

私は何が間違っているのですか?

このコードは、2003年から2010年までのすべてのOutlookバージョンで機能する必要があります。

4

2 に答える 2

1

わかりました、私はそれを自分で解決しました。「保存」の後に「移動」を追加して、下書きフォルダからユーザーの共有フォルダに移動します。したがって、コードは次のようになります。

Dim omApp As New Outlook.Application

    Dim omNamespace As Outlook.NameSpace = omApp.GetNamespace("MAPI")

    Dim omUser As Outlook.Recipient = omNamespace.CreateRecipient("otheruser@mail.com")
    omUser.Resolve()
    If Not omUser.Resolved Then
        MsgBox("Could not login.")
    End If

    Dim omDrafts As Outlook.MAPIFolder = omNamespace.GetSharedDefaultFolder(omUser, Outlook.OlDefaultFolders.olFolderDrafts)
    Dim omMailItem As Outlook.MailItem = CType(omDrafts.Items.Add, Outlook.MailItem)

    With omMailItem
        .SentOnBehalfOfName = "otheruser@mail.com"
        .To = "bill@gates.com"
        .Subject = "Test"
        .Body = "Test email"
        .Save()

        .Move(omDrafts)

    End With
于 2011-11-23T14:53:17.813 に答える
0

GetDefaultFolderは、常にデフォルトでローカルのデフォルトのドラフトフォルダになります。GetSharedDefaultFolderメソッドを確認してください。

このメソッドにRecipientオブジェクトを渡す必要があります-すでにそのために持っomUserています。また、フォルダタイプを渡す必要があります。Outlook.OlDefaultFolders.olFolderDrafts

于 2011-11-22T14:42:27.300 に答える