Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
      mailgraph - a RRDtool frontend for Postfix Statistics
      by David Schweikert <>

mailgraph is a very simple mail statistics RRDtool frontend for Postfix
that produces daily, weekly, monthly and yearly graphs of received/sent 
and bounced/rejected mail (SMTP traffic).

Get it from:


Required Modules

- rrdtool and it's perl module (RRDs)

- File::Tail (which requires Time::HiRes)
  -> get it from CPAN

Note that several Linux distributions will already have these modules as RPMs.


mailgraph is made of two scripts:


  This script does parse syslog and updates the RRD database (mailgraph.rrd)
  in the current directory.

  It is a deamon and will monitor your log-file for changes.

  usage: [*options*]
  -h, --help         display this help and exit
  -v, --verbose      be verbose about what you do
  -V, --version      output version information and exit
  -c, --cat          causes the logfile to be only read and not monitored
  -l, --logfile f    monitor logfile f instead of /var/log/syslog
  -y, --year         starting year of the log file (default: current year)
      --host=HOST    use only entries for HOST (regexp) in syslog
  -d, --daemon       start in the background
  --daemon-pid=FILE  write PID to FILE instead of /var/run/
  --daemon-rrd=DIR   write RRDs to DIR instead of /var/log
  --daemon-log=FILE  write verbose-log to FILE instead of /var/log/mailgraph.log
  --ignore-localhost ignore mail to/from localhost (used for virus scanner)\n";
  If -c is not specified, mailgraph will monitor logfile for Postfix log entries
  in logfile (/var/log/syslog unless -l is specified).

- mailgraph.cgi

  This is a CGI script that does generate graphics from the RRD database.

  You have probably to change $rrd to point to where the RRD database is stored.

  Note that "Bounced", "Viruses", and "Spam" are stacked one on another in the
  graph, whereas "Rejected" is a line.


See the file mailgraph-init for an example init script that you can use to
start mailgraph at system boot.

You need to put mailgraph.cgi on somewhere accessible though a web-server, it
needs to be executeable and the web-server needs to execute it as a CGI.


mailgraph is released under the GPL license. See the file COPYING included in
the distribution for details.