#!/bin/sh # # /usr/local/sbin/localshowmailreceived # Copyright 2007-2008 Jonas Smedegaard # # $Id: localshowmailreceived,v 1.4 2008-02-03 20:10:45 jonas Exp $ # # List recently received emails # # TODO: Handle other patterns than AMaViS # input="${input:-user}" output="${output:-shortline}" logfilecount="${logfilecount:-1}" pattern="${pattern:-user_amavis}" mailname="$(cat /etc/mailname | head -n 1)" sed_longline='s/^\(.\{15\}\) [^:]*: /\1 /' sed_time='s/^\(.\{15\}\) .*$/\1 /' case $pattern in user_amavis) # AMaViSd new egrep_before=' -> <' egrep_after='@'"$mailname" sed_shortline='s/^\(.\{15\}\) [^)]*) \([^,]*\), [^]]*] \([^ ]*\) -> .*Message-ID: \([^>,]*>\?\).*/\1 \3 (\4) \2/' sed_msgid='s/^.*Message-ID: //;s/: .*$//' ;; *) echo >&2 "ERROR: unknwon pattern \"$pattern\"" exit 1 ;; esac case $output in shortline) sedstring="$sed_shortline" ;; longline) sedstring="$sed_longline" ;; msgid) sedstring="$sed_msgid" ;; *) echo >&2 "ERROR: unknwon output \"$output\"" exit 1 ;; esac localuser="$1" find /var/log -name 'mail.log*' | sort -nr -t. -k3 | tail -n "$logfilecount" | xargs zcat -f \ | egrep -- "$egrep_before$localuser$egrep_after" \ | sed "$sedstring"