def __parse_get(self, flow, buf): hdrs, body = [], None for line in buf.splitlines(): m = self.msg_re.match(line.strip()) if m: k, v = m.group('k'), m.group('v') if k in self.hdr_map: v = json.parse(v) if v: hdrs.append((self.hdr_map[k], v)) elif k == 'body': body = json.parse(v) if hdrs and body: self.publish_email(hdrs, body)
def __parse_get(self, flow, buf): hdrs, body = [], [] for s in self.data_re.findall(buf): s = s.replace('\n', '') for i in range(2): # XXX - lame s = s.replace(',,', ',None,') l = json.parse(s) if l[0] == 'mi': if hdrs and body: # XXX - handle message threads self.publish_email(hdrs, '\n'.join(body)) hdrs, body = [], [] hdrs.append(('From', '%s <%s>' % (l[6], l[8]))) hdrs.append(('To', ', '.join(l[11]))) if l[12]: hdrs.append(('Cc', ', '.join(l[12]))) if l[14]: hdrs.append(('Reply-To', l[14][0])) hdrs.append(('Date', l[15])) hdrs.append(('Subject', l[16])) hdrs.append(('Message-Id', l[-1])) elif l[0] == 'mb': body.append(l[1]) if hdrs and body: self.publish_email(hdrs, '\n'.join(body))