#/usr/bin/python # Script to go through import os def parse_message(string): m = {} lines = string.split('\n') meta = lines[0].split() m['age'] = meta[0] if meta[1].find('-') == -1: m['size'] = meta[1] m['id'] = meta[2] m['sender'] = meta[3] try: if meta[5] == 'frozen': m['frozen'] = 1 except: m['frozen'] = 0 else: m['id'] = meta[1] m['sender'] = meta[2] try: if meta[4] == 'frozen': m['frozen'] = 1 except: m['frozen'] = 0 m['lines'] = lines fin, fout = os.popen2('exim4 -Mvh %s'%m['id']) fin.close() m['headers'] = fout.read() fout.close() return m fin, fout = os.popen2('exim4 -bp') fin.close() data = fout.read() fout.close() data = data.split('\n\n') i = 0 live = 1 while live: # Print the current message m = parse_message(data[i]) if m['frozen'] == 0: i += 1 continue print m['lines'][0] print m['headers'] print m['lines'][1:] print '---------------------------------------------------------------------------' # Ask for an action action = raw_input('Enter action (n=next, p=prev, d=delete, v=view, q=quit): ') if action == 'n': i += 1 elif action == 'p': i -= 1 elif action == 'e': break elif action == 'd': os.spawnlp(os.P_WAIT, 'exim4', 'exim4', '-Mrm', m['id'] ) i += 1 elif action == 'v': os.system('(exim4 -Mvh %s; exim4 -Mvb %s;) | less'% ( m['id'], m['id'] ) ) elif action == 'q': break