# # postfix.py # # Get message statistics from postfix/sendmail logs # import re from ..formatting import * from ..util import readlog, resolve from .. import config import logging logger = logging.getLogger(__name__) def parse_log(): section = Section("postfix") logger.debug("Starting postfix section") logger.debug("Searching through postfix logs") messages = re.findall('.*from\=<(.*)>, size\=(\d*),.*\n.*to=<(.*)>', readlog(config.prefs['logs']['postfix'])) r = [] s = [] size = 0 logger.debug("Analysing message size") for message in messages: r.append(message[2]) s.append(message[0]) size += int(message[1]) # size = sum([int(x) for x in messages]) size = parsesize(size) n = str(len(messages)) logger.debug("Analysing message recipients") if (len(r) > 0): rec_data = Data() s = list(set(r)) # unique recipients if (len(s) > 1): rec_data.items = r rec_data.orderbyfreq() rec_data.truncl(config.prefs['maxlist']) rec_data.subtitle = n + " messages sent to" else: rec_data.subtitle = n + " messages sent to " + r[0] section.append_data(rec_data) else: section.append_data(Data(subtitle=n + " messages sent")) logger.info("Found {0} messages sent to {1} recipients".format(n, str(len(r)))) section.append_data(Data(subtitle="Total of " + size)) logger.info("Finished postfix section") return section