blob: 38bf64a9d36e0f1d8282ef4e8aacd3d99adf373a (
plain)
- #!/bin/sh
- #
- # /usr/local/sbin/localshowmailreceived
- # Copyright 2007-2008 Jonas Smedegaard <dr@jones.dk>
- #
- # $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"
|