I have gotten some of the features I want but need help with 2 others.
- I would like to flag the message "Mark as Done" (it's one of the Flag statuses). I have not found how to do this. 
- If I wanted to do this same thing for 4 other emails how would I do it, with 4 other save paths? 
import win32com.client
import os
Outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inboxfolder = Outlook.GetDefaultFolder(6) # "6" refers to the index of a folder - in this case the inbox. You can change that number to reference
inbox = inboxfolder.Items
message = inbox.GetFirst()
subject = message.Subject
sender = message.SenderEmailAddress
for m in inbox:
    if m.Class == 43: # this is to make sure it is an email item and not something else. 
        if m.SenderEmailAddress == 'John@email.com' and m.Unread == True:
            path = 'C:\\User\\Path\\Data\\John'
            print ('Subject as: ' and message)
            for attached in message.Attachments:
                attached.SaveASFile(os.path.join(path,attached.FileName)) #Saves attachment to current folder
                print (attached)
            message.Unread = False
            print (message.FlagStatus)
            message.FlagStatus = 1  # This is to "mark as Done" but it doesn't work
            message = inbox.GetNext()
        elif m.SenderEmailAddress == 'Jane@email.com' and m.Unread == True:
            path = 'C:\\User\\Path\\Data\\Jane'
            # ... How would you add 4 more? 
            message = inbox.GetNext()
        else:
            message = inbox.GetNext()
 
    