Python Outlook: Read Inbox Of Additional Mailbox
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"