AMISH HUSAIN
AMISH HUSAIN

Reputation: 45

How to access emails in shared mailbox?

I have two accounts in Outlook one is my personal and another is shared.
I want to read or unread emails of my shared mail box.

I have code that is working with my personal Inbox.

With my shared email group it is showing
automation error pop-up

Sub OutlookTesting()
    Dim folders As Outlook.folders
    Dim Folder As Outlook.MAPIFolder
    Dim iRow As Integer
    Dim Pst_Folder_Name
    Dim MailboxName
    Dim UnRow As Integer
    Dim RESS As Outlook.Recipient
    Dim Flag As Integer
    
    'Mailbox or PST Main Folder Name (As how it is displayed in your Outlook Session)
    MailboxName = "[email protected]" 'Mailbox Folder or PST Folder Name (As how it is displayed in your Outlook Session)
    Pst_Folder_Name = "Inbox"
    
    ' subfolder name
    Dim subFolderName As String
    subFolderName = "XYZ"
    
    Set Folder = Outlook.Session.folders(MailboxName).folders(Pst_Folder_Name)
    If Folder = "" Then
        MsgBox "Invalid Data in Input"
        GoTo end_lbl1:
    End If
    
    'Read Through each Mail and export the details to Excel for Email Archival
    For iRow = 1 To Folder.Items.Count
        If (Folder.Items(iRow).UnRead) Then
            Flag = 0
            Set Res = Folder.Items(iRow).Recipients
                For Each RESS In Res
                    If RESS.Name = "ABCD" Or RESS.Name = "PQRS" Then
                      Flag = 1
                    End If
                Next
                If Flag = 1 Then
                    Folder.Items(iRow).UnRead = True
                Else: Folder.Items(iRow).UnRead = False
                End If
            End If
        Next iRow
        MsgBox "Outlook Mails Extracted to Excel"
end_lbl1:
End Sub

Upvotes: 2

Views: 6206

Answers (1)

Sukhvindra Singh
Sukhvindra Singh

Reputation: 198

Hi you can try with the below code(I have edit your above posted code) and also remove unusual code according to your need.

Sub OutlookTesting()
Dim folders As Outlook.folders
Dim folder As Outlook.MAPIFolder
Dim iRow As Integer
Dim Pst_Folder_Name
Dim MailboxName
Dim UnRow As Integer
Dim RESS As Outlook.Recipient
Dim Flag As Integer
Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olfldr As Outlook.MAPIFolder
Dim foldername As Outlook.MAPIFolder
Dim sharedemail As Outlook.Recipient


Set olApp = New Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set sharedemail = olNS.CreateRecipient("[email protected]")
Set olfldr = olNS.GetSharedDefaultFolder(sharedemail, olFolderInbox)


Set folder = olfldr

If folder = "" Then
   MsgBox "Invalid Data in Input"
   GoTo end_lbl1:
End If

'Rad Through each Mail and export the details to Excel for Email Archival

For iRow = 1 To folder.Items.Count
    If (folder.Items(iRow).UnRead) Then
        Flag = 0
        Set Res = folder.Items(iRow).Recipients
            For Each RESS In Res
                If RESS.Name = "XYZ" Or RESS.Name = "ABC" Then
                  Flag = 1
                End If
            Next
            If Flag = 1 Then
                  folder.Items(iRow).UnRead = True
                    Else: folder.Items(iRow).UnRead = False
                End If
    End If
Next iRow
MsgBox "Outlook Mails Extracted to Excel"
end_lbl1:
End Sub

Upvotes: 3

Related Questions