Skip to content Skip to sidebar Skip to footer

Python Outlook: Read Inbox Of Additional Mailbox

I'm using Outlook 2010 - and have my main mailbox: name@company.com I have also added another mailbox to my profile: mb data proc Both appear as top level folders within Outlook:

Solution 1:

I had a similar doubt and as I understand it the solution stated here is for Python 2.7

I will try to make it understandable regarding how to operate it using Python 3.+ versions.

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders.Item("Mailbox Name")
inbox = folder.Folders.Item("Inbox")
msg = inbox.Items
msgs = msg.GetLast()
print (msgs)
print (msgs.Subject)

Since _Folder is not callable, you need to use Folders.Item() method in Python 3+ to reference your mailbox.

Hope that was helpful. Thanks!

Solution 2:

Here's a simple solution. I think the only part you missed was getting to the "Inbox" folder inside of "mb data proc".

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders("mb data proc")
inbox = folder.Folders("Inbox")
msg = inbox.Items
msgs = msg.GetLast()
print msgs

Solution 3:

I was trying to access Additional Mail Boxes and read the Inbox from these Shared folders

import win32com.client

>>>outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI").Folders>>>folder = outlook(1)>>>inbox = folder.Folders("Inbox")>>>message = inbox.Items>>>messages = message.GetLast()>>>body_content = messages.body>>>print (body_content)

Solution 4:

If your looking for other mailboxes or seperate PST files you have access to in outlook, try using the Store / Stores MAPI objects.

import win32com.client

for stor in win32com.client.Dispatch("Outlook.Application").Session.Stores:
    print( stor.DisplayName) 

PS .Session return the same reference as .GetNamespace("MAPI")

for reference https://docs.microsoft.com/en-us/office/vba/api/overview/outlook

Solution 5:

Thank you for you Posts! Here is a function I pulled together based on your Input, to read out the available Folders:

This is my first post, so I hope I copied the code in properly:

defcheck_shared(namespace,recip = None): 
    """Function takes two arguments:
        .) Names-Space: e.g.: 
            which is set in the following way: outlook = Dispatch("Outlook.Application").GetNamespace("MAPI") and
        .) Recipient of an eventual shared account as string: e.g.: Shared e-Mail adress is "shared@shared.com"
            --> This is optional --> If not added, the standard-e-Mail is read out"""if recip isNone:
        for i inrange(1,100):                           
            try:
                inbox = namespace.GetDefaultFolder(i)     
                print ("%i %s" % (i,inbox))            
            except:
                #print ("%i does not work"%i)continueelse:
        print('The folders from the following shared account will be printed: '+recip)
        tmpRecipient = outlook.CreateRecipient(recip)
        for i inrange(1,100):                           
            try:
                inbox = namespace.GetSharedDefaultFolder(tmpRecipient, i)     
                print ("%i %s" % (i,inbox))            
            except:
                #print ("%i does not work"%i)continueprint("Done")

Post a Comment for "Python Outlook: Read Inbox Of Additional Mailbox"