X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/90b680896df34b1a64d4541ceea5491a58136558..c3d55a5719b81c63c76cd118f47cd56b68a2be9d:/procmail/logging diff --git a/procmail/logging b/procmail/logging index 516049d..67d7712 100644 --- a/procmail/logging +++ b/procmail/logging @@ -5,23 +5,46 @@ MSGIDDIR=$PMVAR/msgid :0 * MSGID ?? ^<\/[^>]+ { - THISLOGFILE_REL=`echo $MATCH | tr -d "'\"?[:cntrl:]" | tr ' /*' '__+'`%$OURDATE_SHORT + MSGID_NAME=`echo $MATCH | tr -d "'\"?[:cntrl:]" | tr ' /*$' '__+S'` + + #VERBOSE=yes + # check if filename > 228 characters and if so, then shorten it to prevent + # hitting filesystem limit after we append the timestamp + :0 + * MSGID_NAME ?? ^..................................................................................................................................................................................................................................... + { + HASH=`echo $MSGID_NAME | md5sum | cut -d' ' -f1` + MSGID_NAME=`echo $MSGID_NAME | cut -c-196`$HASH + } + + THISLOGFILE_REL=$MSGID_NAME%$OURDATE_SHORT THISLOGFILE="$MSGIDDIR/$THISLOGFILE_REL" + + MSGID_NAME + #VERBOSE=no } MASTERLOGFILE="$LOGFILE" LOGFILE="$THISLOGFILE" -LOG="============================================================================== -msgid: $MSGID +LOG="==============================================================================$NL" + +:0 +* LOGLATER ?? . +{ LOG="$LOGLATER" } + +LOG="msgid: $MSGID logfile: $THISLOGFILE_REL date: $DATE (@$OURDATE) from: $FROM +sender: $SENDER original-to: $ORIGINAL_TO subject: $SUBJECT$NL" -TRAP="echo \"delivered: \${LASTFOLDER#$BASE/}\" >> '$THISLOGFILE'; - echo >> '$THISLOGFILE'; - egrep -v '^(procmail:)?[[:space:]\"]' '$THISLOGFILE' >> $MASTERLOGFILE" +TRAP="DESTFILE=\"\${LASTFOLDER#$BASE/}\"; + /usr/bin/lockfile -4 -r50 -l180 $PMVAR/lock; + trap \"echo >> '$THISLOGFILE'; + /bin/cat '$THISLOGFILE' >> $MASTERLOGFILE; + /bin/rm -f $PMVAR/lock\" 0" -#VERBOSE=yes +THISLOGFILE_REL