2009-03-11 3 views
3

У меня есть два почтовых ящика в моем Outlook.Доступ к другому maibox в Outlook с использованием vba

Один, который принадлежит мне, и он автоматически регистрирует меня, когда я вхожу в систему на свой компьютер, а другой у меня есть для отказов почты.

Мне действительно нужно получить доступ к почтовому ящику почты, но я просто не могу этого сделать.

И нет никакого способа, я могу сделать почтовый ящик учетной записи электронной почты, чтобы быть мой по умолчанию почтового ящика

Вот код, который я до сих пор:

Public Sub GetMails() 

    Dim ns As NameSpace 
    Dim myRecipient As Outlook.Recipient 
    Dim aFolder As Outlook.Folders 

    Set ns = GetNamespace("MAPI") 

    Set myRecipient = ns.CreateRecipient("[email protected]") 
    myRecipient.Resolve 
    If myRecipient.Resolved Then 
     MsgBox ("Resolved") 
     Set aFolder = ns.GetSharedDefaultFolder(myRecipient, olFolderInbox) 
    Else 
     MsgBox ("Failed") 
    End If 

End Sub 

Проблемы я получаю в

Set aFolder = ns.GetSharedDefaultFolder(myRecipient, olFolderInbox)

я Улажено MsgBox, так что я знаю, что это работает, но после того, что я получаю сообщение об ошибке:

Run-Time Error

, который не говорит о самой ошибке.

Может ли кто-нибудь помочь мне здесь, пожалуйста?

ответ

3

Если папка, к которой вы хотите получить доступ, не является папкой Exchange, вам необходимо ее найти, если она является папкой Exchange, попробуйте войти в пространство имен.

Войдите на NAMESPACE

Set oNS = oApp.GetNamespace("MAPI") 
    oNS.Logon 

найти папку Насколько я помню, этот код от Си Мошера.

Public Function GetFolder(strFolderPath As String) As Object 'MAPIFolder 
' strFolderPath needs to be something like 
' "Public Folders\All Public Folders\Company\Sales" or 
' "Personal Folders\Inbox\My Folder" '' 

Dim apOL As Object 'Outlook.Application ' 
Dim objNS As Object 'Outlook.NameSpace ' 
Dim colFolders As Object 'Outlook.Folders ' 
Dim objFolder As Object 'Outlook.MAPIFolder ' 
Dim arrFolders() As String 
Dim I As Long 

On Error GoTo TrapError 

    strFolderPath = Replace(strFolderPath, "/", "\") 
    arrFolders() = Split(strFolderPath, "\") 

    Set apOL = CreateObject("Outlook.Application") 
    Set objNS = apOL.GetNamespace("MAPI") 


    On Error Resume Next 

    Set objFolder = objNS.Folders.Item(arrFolders(0)) 

    If Not objFolder Is Nothing Then 
     For I = 1 To UBound(arrFolders) 
      Set colFolders = objFolder.Folders 
      Set objFolder = Nothing 
      Set objFolder = colFolders.Item(arrFolders(I)) 

      If objFolder Is Nothing Then 
       Exit For 
      End If 
     Next 
    End If 

    Set GetFolder = objFolder 
    Set colFolders = Nothing 
    Set objNS = Nothing 
    Set apOL = Nothing 


End Function 
+1

ничего себе! Спасибо за код. Мне удалось решить мою проблему, создав новый профиль и указав только ту учетную запись, которую я хотел, поэтому код работает в этом аккаунте :) Спасибо – AntonioCS