def __search_mbox(self, mboxfile, text): """ Search a compressed mbox for any specified keywords """ num = 0 statinfo = os.stat(mboxfile) gzmbox = gzip.open(mboxfile) mbox = UnixMailbox(gzmbox, email.message_from_file) while True: msg = mbox.next() if not msg: break num += 1 fields = [msg['From'], msg['Subject']] + self.__body(msg) for field in fields: if re.search(text, field, re.IGNORECASE): id = "%s.%s" % (statinfo[stat.ST_INO], num) print "[%s] %s %s" % (id, msg['From'], msg['Subject']) break gzmbox.close()
def show(self, id): """ Show a message with a given ID """ inode, msgnum = map(int, id.split('.')) olddir = os.getcwd() os.chdir(DEVSHELL_DIR) mboxfile = None for dir in filter(isdir, os.listdir('.')): for file in os.listdir(dir): statinfo = os.stat(join(dir, file)) if statinfo[stat.ST_INO] == inode: mboxfile = join(dir, file) break if mboxfile: break if mboxfile: gzmbox = gzip.open(mboxfile) mbox = UnixMailbox(gzmbox, email.message_from_file) num = 0 while num != msgnum: msg = mbox.next() num += 1 self.__print_msg(msg) else: log.error("Cannot find message %s" % id) os.chdir(olddir)
def scan_file(file): fp = open(file, 'r') mbox = UnixMailbox(fp) #msg = email.message_from_file(fp) #print_header(msg) #msg = email.message_from_file(fp) #print_header(msg) #print "ok" #return i = 0 for mail in mbox: i = i + 1 fromh = mail.getheader("from") date = mail.getdate("date") mydate = '%4d/%2d/%2d' % (date[2], date[1], date[0]) print i, mydate, fromh
def __init__(self, fileobj, fromfield): self.__myfromfield__ = fromfield _fromlinepattern = r"%s: .*\n" % fromfield UnixMailbox.__init__(self, fileobj, convert_rfc822)
def __init__(self, fileobj): UnixMailbox.__init__(self, fileobj, convert_rfc822)
#!/usr/bin/env python2.4 from mailbox import UnixMailbox from PyLucene import StandardAnalyzer, FSDirectory, IndexWriter from email import EmailDoc store = FSDirectory.getDirectory('chipy-index', True) writer = IndexWriter(store, StandardAnalyzer(), True) mailbox = UnixMailbox(open('chipy.mbox')) while True: msg = mailbox.next() if msg == None: break writer.addDocument(EmailDoc(msg)) writer.close()
#!/usr/bin/env python2.4 from mailbox import UnixMailbox from PyLucene import StandardAnalyzer, FSDirectory, IndexWriter from email import EmailDoc store = FSDirectory.getDirectory( 'chipy-index', True ) writer = IndexWriter( store, StandardAnalyzer(), True ) mailbox = UnixMailbox( open('chipy.mbox') ) while True: msg = mailbox.next() if msg == None: break writer.addDocument( EmailDoc(msg) ) writer.close()
def openmailbox(self): fd = self.vfs.open(self.getselector(), "rt") return UnixMailbox(fd)
def prepare(self): self.rfile = self.vfs.open(self.getselector(), "rt") self.mbox = UnixMailbox(self.rfile) FolderHandler.prepare(self)
def __init__(self, fileobj, fromfield): self.__myfromfield__ = fromfield _fromlinepattern = r"%s: .*\n" %fromfield UnixMailbox.__init__(self, fileobj, convert_rfc822)