Hi Jeff,
I'm sorry you had problems with my previous date code - hope it hasn't
caused you much grief. I just didn't realise there were mail clients out
there which produced malformed date strings (well, ones that date(1) can't
read at least).
The last patch to mailme I sent was (again) incorrect as it didn't
take care of multiple Received: lines, and the junk on a Received line
before the semicolon. I've attached a patch (again from your original
source) which deals with this (it uses the top Received: line which I think
is safest), and also skips the date code completely unless it's a monthly
list, just so that any problems don't affect non-monthly lists at all. But
providing x-archive-with-list is formatted ok, or Received: lines are
sensible (which come from your server so they are), malformed dates
hopefully should be a thing of the past.
With regard to attachments: I copied over your own MIMEargs (just added a
target=), and I've gone back and regenerated my archives here with your
rcfile alone: and yes, I think it's with text/plain attachments that the
msg* subdirectory gets created. I don't know why they don't tack
.dir on the end for these attachments, at least here, but I'm sure
it's not a worry.
Paul
--- mailme.jeff Mon Sep 6 21:17:09 1999
+++ mailme Mon Sep 6 21:01:19 1999
@@ -103,6 +103,25 @@
} '
}
+# Special case of grab() for Received: lines
+# This is because we want to take first occurrence
+# Example usage: cat messageheaders | receiveme
+receiveme() {
+$NAWK '
+BEGIN {
+m = ^Received:
+}
+{
+if (match($0, m)) {
+print $0
+getline
+while ( $0 ~ /^[ \t]+/) {
+print $0; getline
+}
+}
+} '
+}
+
# Get all email addresses, and precede them with a carat.
# Example usage: cat RMAIL | waterfall
waterfall () {
@@ -318,10 +337,6 @@
X13=`echo $T | grab mailing-list` #use later
X14=`echo $T | grab list-post`
-# If indexing by month, we care about the date
-DATE=`echo $T | grab date`
-JUSTDATE=`echo $DATE | sed 's/^date: //i'`
-
# Extract email addresses
CHANCE=$(echo $TO $CC $X1 $X2 $X3 $X4 $X5 $X6 $X7 $X8 $X9 $X10 $X11 $X14 |\
waterfall)
@@ -453,6 +468,29 @@
MONFLAG=$HOME/vault/$ESCAPED_NAME/monthly
if [ -f $MONFLAG ]
then
+
+# If indexing by month, we care about the date
+# If importing, see if x-archive-with-date is set first.
+# Use Date: as last resort because of mis-set clocks.
+ XDATE=`echo $T | grab x-archive-with-date`
+ [ ! $XDATE ] XDATE=`echo $T | receiveme`
+ [ ! $XDATE ] XDATE=`echo $T | grab date`
+ if [ ! $XDATE ]
+ then
+ emergency_divert NODATE Unable to find any date field.
+ exit -1
+ fi
+ JUSTDATE=`echo $XDATE | sed -e 's/^date: //i' \
+ -e 's/^x-archive-with-date: //i' \
+ -e 's/^received:.*; //i'`
+ date -d $JUSTDATE /dev/null 21
+ ex=$?
+ if [ $ex != 0 ]
+ then
+ emergency_divert NODATE Unable to find valid date field.
+ exit -1
+ fi
+
echok info Now switching to monthly indexing
MM=`date -d $JUSTDATE +%Y-month-%m`
MONBEG=`date -d $JUSTDATE +%m/01/%Y:00:00:00.00`