X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/c3d55a5719b81c63c76cd118f47cd56b68a2be9d..1291690f108172bad19b29a83fadccb1d53d16a1:/procmail/logging

diff --git a/procmail/logging b/procmail/logging
index 67d7712..19cbc4d 100644
--- a/procmail/logging
+++ b/procmail/logging
@@ -5,23 +5,25 @@ MSGIDDIR=$PMVAR/msgid
 :0
 * MSGID ?? ^<\/[^>]+
 {
-  MSGID_NAME=`echo $MATCH | tr -d "'\"?[:cntrl:]" | tr ' /*$' '__+S'`
+  MSGID_NAME=`echo -n $MATCH | sha224sum | cut -d' ' -f1`
 
-  #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 ?? ^\/.
+  { HASH1="$MATCH" }
 
+  :0
+  * MSGID_NAME ?? ^.\/.
+  { HASH2="$MATCH" }
+
+  THISLOGFILE_REL="${HASH1}/${HASH2}/${MSGID_NAME}_${OURDATE_SHORT}"
+  LOGDIR="${MSGIDDIR}/${HASH1}/${HASH2}"
+  MKDIR=`test -d $LOGDIR || mkdir -p $LOGDIR`
+  MKDIR
+  LOGDIR
+  THISLOGFILE="${MSGIDDIR}/${THISLOGFILE_REL}"
+  HASH2
+  HASH1
   MSGID_NAME
-  #VERBOSE=no
 }
 
 MASTERLOGFILE="$LOGFILE"
@@ -36,8 +38,8 @@ LOG="===========================================================================
 LOG="msgid:       $MSGID
 logfile:     $THISLOGFILE_REL
 date:        $DATE (@$OURDATE)
-from:        $FROM
 sender:      $SENDER
+from:        $FROMEMAIL ($FROM)
 original-to: $ORIGINAL_TO
 subject:     $SUBJECT$NL"