X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/e2591d17d590847dd54544278b77dde413d00fac..7e97fbf41b4db9ee734b6a8bb94021cc005697e1:/procmail/defines

diff --git a/procmail/defines b/procmail/defines
index e96e7f0..64dfd53 100644
--- a/procmail/defines
+++ b/procmail/defines
@@ -72,6 +72,7 @@ RE_SPACE_NEWLINE="(^|$RE_SPACE)"
 RE_FIRSTNAME="martin($RE_SPACE_NEWLINE+f(\.?|elix))?"
 RE_LASTNAME="kraff?t"
 RE_EXTRACT_HEADER_VALUE="$RE_SPACE*\/$RE_NOT_SPACE.*"
+RE_EMAILADDRESS="${RE_NOT_SPACE}+@${RE_NOT_SPACE}+\.[^ 	>]+"
 
 DEJAVU_HEADER=X-Deja-Vu
 
@@ -86,7 +87,7 @@ DELAY_NEXT_WEEKEND='next sunday 28 hours ago' # fri night, 20:00
 DELAY_TONIGHT='tomorrow 00:00 4 hours ago' # tonight at 20:00
 DELAY_AFTERNOON='tomorrow 00:00 8 hours ago' # today at 16:00
 
-OURDATE="`$BIN_DATE +'%s %Y.%m.%d.%H.%M.%N %a, %d %b %Y %T %z'`"
+OURDATE="`$BIN_DATE +'%s %Y%m%d.%H%M.%N %a, %d %b %Y %T %z'`"
 :0
 *$ OURDATE ?? ^\/${RE_NOT_SPACE}+
 { OURDATE_TS="$MATCH" }
@@ -117,33 +118,52 @@ ID="$LOGNAME@$HOSTNAME"
 # message-id
 INCLUDERC=$PMDIR/get-msgid
 
+:0
+*$ ^From:$RE_EXTRACT_HEADER_VALUE
+{ FROM="$MATCH" }
+
+:0
+* FROM ?? ^.+<\/.+@[^>]+
+{ FROMEMAIL="$MATCH" }
+
+:0 E
+* FROM ?? ^.+\(\/.+@[^\)]+
+{ FROMEMAIL="$MATCH" }
+
+:0 E
+*$ FROM ?? ^\/$RE_EMAILADDRESS
+{ FROMEMAIL="$MATCH" }
+
+:0
+* FROMEMAIL ?? ^".+"$
+* FROMEMAIL ?? ^"\/[^"]+
+{ FROMEMAIL="$MATCH" }
+
 # if $SENDER is undefined or not an email address, get it from the message
 :0
 * !SENDER ?? @
-*$ ^Sender:$RE_EXTRACT_HEADER_VALUE
-{ SENDER="$MATCH" }
+{
+  :0
+  *$ ^Sender:$RE_EXTRACT_HEADER_VALUE
+  { SENDER="$MATCH" }
+
+  :0 E
+  { SENDER="$FROMEMAIL" }
+}
 
 :0
 *$ ^Date:$RE_EXTRACT_HEADER_VALUE
 { DATE="$MATCH" }
 
-:0
-*$ ^From:$RE_EXTRACT_HEADER_VALUE
-{ FROM="$MATCH" }
-
 :0
 *$ ^Subject:$RE_EXTRACT_HEADER_VALUE
 {
   SUBJECT=$MATCH
 
-  # mimedecode.c: * Disclaimer: We only handle charset of iso-8859-1
   :0
-  * SUBJECT ?? =\?iso-8859-1\?[QBqb]\?.+\?=
+  * SUBJECT ?? =\?.+\?[QBqb]\?.+\?=
   {
-    DECODED="`echo Subject: $SUBJECT | mimedecode | iconv -f latin1 -t utf-8`"
-    :0
-    *$ DECODED ?? ^Subject:$RE_EXTRACT_HEADER_VALUE
-    { SUBJECT=$MATCH }
+    SUBJECT="`PERL_UNICODE=S perl -MEncode=decode -e \"print decode(\\\"MIME-Header\\\", \\\"$SUBJECT\\\") . \\\"\n\\\";\"`"
   }
 }
 
@@ -237,4 +257,9 @@ DELAY
 # released. Overrides DELAY.
 RELEASE
 
+# MARK_READ
+# when set, causes mails to be marked as read when delivered. Can be
+# initialised with DELIVER_READ
+MARK_READ=$DELIVER_READ
+
 # vim:ft=procmail