I am trying to add color categories to existing emails in a given outlook folder based on criterias such as email object and/or sender email address.
import win32com.client as client import win32com import pandas as pd outlook = client.Dispatch("Outlook.Application").GetNamespace('MAPI') main_account = outlook.Folders.Item(1) second_account = outlook.Folders.Items(3) df = pd.read_excel (r'C:Pythontest.xls') df_outlook_folder = df['Outlook_folder'].tolist() df_mail_object = df['Mail_object'].tolist() out_iter_folder = main_account.Folders['Inbox'].Folders['TEST'] fixed_item_count = out_iter_folder.Items.Count item_count = out_iter_folder.Items.Count if yout_iter_folder.Items.Count > 0: for i in reversed(range(0,item_count)): message = out_iter_folder.Items[i] for y,z in zip(df_mail_object,df_outlook_folder): try: if y in message.Subject: message.Move(second_account.Folders['Inbox'].Folders['TESTED'].Folders[z] except: pass item_count = out_iter_folder.Items.Count print('Nb mails sorted:',fixed_item_count - item_count)
the code above enables me to move emails based on the mail object but I am not able so far to add a feature to also change the outlook color categories
I spent time on the following doc without success so far https://learn.microsoft.com/en-us/office/vba/api/outlook.categories
Advertisement
Answer
Categories is a delimited string of category names that have been assigned to an Outlook item.
mail.Categories='Red category' mail.Save()
You may find the update categories in emails using python thread helpful.