One day a few years back, I wondered what mailers people were using to send me messages. So, I wrote some perl scripts to process my incoming mail and attempt to find out.
I ran these scripts for several years on my server. However, I've now switched to hosted web space and mail (may I recommend fastmail.fm?). Thus, I can't run my scripts any more.
Still, I will leave the scripts up on my web site in case anyone else wants them. The scripts do show how to use tied databases in perl, so they might make a useful learning tool.
Theory of operation: every incoming email gets fed to xmget (via procmail). xmget processes the message and extracts the X-Mailer or User-Agent header. That header is stored in a database via a tied perl hash.
xmdump reads the database generated by xmget and produces a pretty graph suitable for inclusion in a web page.
xmlistconv is a helper script that reads the database and produces a html page listing all the mailers.
- xmget - meant to be run on every incoming mail via procmail.
- xmdump - meant to be run via cron on a regular basis.
- xmlistconv - utility script to pretty-print the database info.