Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access a subfolder in Outlook inbox in Python

I have created a rule in Outlook to move all incoming messages from a particular sender to a subfolder in my Inbox.Like -

Inbox
- Subfolder

I wrote a piece of code

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.GetDefaultFolder(6) #6 = Inbox (without mails from the subfolder)
messages = inbox.Items
message = messages.GetLast()
body_content = message.body 
print body_content #Sometimes has parsing error due to different encoding format

How can I

1) Read the mails in this particular folder inside Inbox

2) Take care of error like UnicodeEncodeError: 'charmap' codec can't encode - character maps to

print (u'\2109') issues this error too.

like image 223
Prateek Narendra Avatar asked Jan 10 '17 07:01

Prateek Narendra


People also ask

How do I search all subfolders in Outlook?

1. Get in to the email folder which you want to start searching within as well as its subfolders. 2. Click on the Instant Search box to activate the Search Tools, type the search condition in the box, and then click All Subfolders in the Scope group under Search tab.


2 Answers

outlook.GetDefaultFolder(6) is "Inbox" position by default. You need to traverse the list of folders in it, so try this

inbox = outlook.GetDefaultFolder(6).Folders.Item("Your_Folder_Name")
like image 118
Sanket Avatar answered Sep 29 '22 08:09

Sanket


u'\2109' looks a lot like UTF-8 encoding.

So print(body_content.encode("utf-8")) will do the trick.

like image 36
Jean-François Fabre Avatar answered Sep 29 '22 08:09

Jean-François Fabre