blob: 2b4f992edb774be4d089ce2fbddafd71cefee5cf (
plain)
- #!/bin/sh
- #
- # /usr/local/sbin/localshowmaildelivered
- # Copyright 2007 Jonas Smedegaard <dr@jones.dk>
- #
- # $Id: localshowmaildelivered,v 1.6 2007-10-04 00:38:03 jonas Exp $
- #
- # List recently delivered emails
- #
- input="${input:-user}"
- output="${output:-shortline}"
- logfilecount="${logfilecount:-1}"
- pattern="${pattern:-user_dovecot}"
- mailname="$(cat /etc/mailname | head -n 1)"
- sed_longline='s/^\(.\{15\}\) [^:]*: /\1 /'
- sed_time='s/^\(.\{15\}\) .*$/\1 /'
- case $pattern in
- user_dovecot)
- # Dovecot "deliver"
- egrep_before='deliver\(('
- egrep_after=')\).*saved mail to '
- sed_shortline='s/^\(.\{15\}\) [^)]*): msgid=/\1 (/;s/: saved mail to/)/;s/ INBOX$//'
- sed_msgid='s/^[^)]*): msgid=//;s/: .*$//'
- ;;
- user_procmail)
- # Postfix/local via procmail
- egrep_before=' postfix/local.*: to=<'
- egrep_after='@'"$mailname"'>, .*status=sent \(delivered to command: procmail'
- sed_shortline='s/^\(.\{15\}\) [^:]*: /\1 (/;s/: .*$/)/'
- sed_qid='s/^[^:]*: //;s/: .*$//'
- ;;
- qid_postfix)
- egrep_before='[^[:xdigit:]]'
- egrep_after='[^[:xdigit:]]'
- sed_shortline="$sed_longline"
- sed_qid='s/^[^:]*: //;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"
- ;;
- qid)
- sedstring="$sed_qid"
- ;;
- *)
- 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"
|