#!/usr/bin/procmail -m # bin eaddress-sorter -i "-vD" -- \ # eaddress-sorter -- sort mail by date send and email address of detected mailing list or the best from email address # Copyright (C) 2003 by Richard Hawes # This is free software; see the GNU General Public License version 2 # or later for copying conditions. There is NO warranty. # $Id: eaddress-sorter,v 1.5 2003/08/29 01:12:27 ricardo Exp $ # usage: eaddress-sorter [ dir_path ] < file # change settings in $HOME/.eaddress-sorter # depends on procmail-lib YYYY_MM=`date +%Y-%m` GET_DATE_RC="${GET_DATE_RC:-get-date.rc}" GET_FROM_RC="${GET_FROM_RC:-get-from.rc}" INITIAL_RC="${INITIAL_RC:-.eaddress-sorter}" LIST_ADDR_RC="${LIST_ADDR_RC:-list-addr.rc}" SRTR_DIR="${SRTR_DIR:-Year-Mo_From}" SRTR_LOGFILE="${SRTR_LOGFILE:-log/sorter.$YYYY_MM}" PROCMAIL_LIB="${PROCMAIL_LIB:-/usr/share/procmail-lib}" NOBODY="${NOBODY:-nobody}" :0 * ? test -f "$INITIAL_RC" { INCLUDERC="$INITIAL_RC" } SRTR_DIR="${1:-$SRTR_DIR}" # check if MAILDIR is set to procmail default :0 * $ MAILDIR ?? ^$\HOME$ { MAILDIR="$HOME/Mail" } # remember MAILDIR REM_MAILDIR="$MAILDIR" # change current dir to use procmail-lib MAILDIR="$PROCMAIL_LIB" INCLUDERC="$LIST_ADDR_RC" :0 * LISTADDR ?? . { SRTR_ADDR="$LISTADDR" } :0E { INCLUDERC="$GET_FROM_RC" SRTR_ADDR="$FROM" } DATE_DEFAULT_NOW=y INCLUDERC="$GET_DATE_RC" SRTR_DIR_DIR="$SRTR_DIR/$DATE_YEAR-$DATE_MONTH2" # change current dir to remembered MAILDIR MAILDIR="$REM_MAILDIR" # the sed regular exp was taken from an automatically generated file # by the procmail module for the Dotfile Generator SRTR_FILE=`echo $SRTR_ADDR| tr -s '\t' ' '| sed -n -e '/^[^@]*@[^ ]* *(.*)/ {;s/^\([^@]*@[^ ]*\) *(.*)/\1/p;q;}' -e '/.*<[^@]*@[^ >]*>/ {;s/.*<\([^@]*@[^ >]*\)>/\1/p;q;}' -e '/[^@ ]*@[^ ]*/ s/\([^@ ]*@[^ ]*\)/\1/p'| tr '[ [:upper:]]' '[_[:lower:]]'` :0 * ! SRTR_FILE ?? . { SRTR_FILE="$NOBODY" } :0 Wic * ? test ! -d "$SRTR_DIR_DIR" | mkdir -p "$SRTR_DIR_DIR" :0 c * ! SRTR_LOGABSTRACT ?? no | formail -l "$SRTR_DIR_DIR/${SRTR_FILE}.gz" >>"$SRTR_LOGFILE" :0 | formail | gzip >> "$SRTR_DIR_DIR/${SRTR_FILE}.gz"