def mark_as_read(folder=args.folder): if not folder: raise FatalError('A folder is required!') server = imap_connect_and_login(config['IMAP_HOST'], config['IMAP_USER'], config['IMAP_PASS']) imap_select_folder(server, args.folder) code, data = server.search(None, '(Unseen)') messages = data[0].split() for msg in messages: server.store(msg, '+FLAGS', '\\Seen')
import re import os import email from helpers import mail_config, imap_connect_and_login IMAP_FOLDER = 'Purchases' FOLDER_TO_SAVE = 'C:\\Users\\niek\\ownCloud\\Documents\\Invoices' config = mail_config() server = imap_connect_and_login(config['IMAP_HOST'], config['IMAP_USER'], config['IMAP_PASS']) server.select(IMAP_FOLDER) resp_code, data = server.search(None, '(UNSEEN)') messages = data[0].split() for msg in messages: code, data = server.fetch(msg, '(RFC822)') text = data[0][1] message = email.message_from_bytes(text) sender = message['From'].replace('"', '') name = sender[0:sender.rfind(' <')] sender = sender[sender.find('<') + 1:sender.rfind('>')] domain = sender.replace(sender[0:sender.find('@') + 1], '') for part in message.walk(): if part.get_content_maintype() == 'multipart' or part.get('Content-Disposition') is None: server.store(msg, '-FLAGS', '\\Seen') continue