X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/519207b89004aa4a4b360767fa30aa48afaa6139..60741dc7426fa49e5b3188616edc4ca6b614fdbc:/procmail/delay-delivery

diff --git a/procmail/delay-delivery b/procmail/delay-delivery
index cfe3403..cd50135 100644
--- a/procmail/delay-delivery
+++ b/procmail/delay-delivery
@@ -1,15 +1,33 @@
 #TODO: create config/delay-(disabled|tonight|weekend)
 
-:0 fw
+:0
 * POSTPONED ?? .
-|$FORMAIL -R X-Postponed X-Was-Postponed
+{
+  LOG="delay:       not delaying already-postponed message$NL"
+  :0 fw
+  |$FORMAIL -R X-Postponed X-Was-Postponed
+}
+
+:0 E
+* DISABLE_DELAYS ?? .
+{
+  LOG="delay:       delays disabled, thus not delaying$NL"
+}
 
 :0 E
-* ! DISABLE_DELAYS ?? .
-* DELAY ?? .
+* ? echo "$FROM" | $EGREP -qif $CONF/undelayed-senders
 {
-  #TODO: for tickling, use header date
-  RELEASE="`$BIN_DATE -d \"$DELAY\" +'%s %c'`"
+  LOG="delay:       do not delay mail from $FROM$NL"
+}
+
+:0 E
+* 1^0 DELAY ?? .
+* 1^0 RELEASE ?? .
+{
+  :0
+  * ! RELEASE ?? .
+  { RELEASE="`$BIN_DATE -d \"$DELAY\" +'%s (%c)'`" }
+  DELAY
 
   :0
   *$ RELEASE ?? ^\/${RE_NOT_SPACE}+
@@ -20,15 +38,18 @@
   *$ -$OURDATE_TS ^0
   {
     :0
-    *$ RELEASE ?? ^[0-9]+${RE_SPACE}+\/.+
+    *$ RELEASE ?? ^[0-9]+${RE_SPACE}+\(\/[^)]+
     { RELEASE_TIME="$MATCH" }
 
     LOG="delay:       delay delivery of $MSGID until $RELEASE_TIME$NL"
-    POSTPONED="$RELEASE_TS ($RELEASE_TIME)"
 
-    INCLUDERC=$PMDIR/record-delayed-mail
+    RELEASE_TIME
+
+    :0 fw
+    |$FORMAIL -I"X-Postponed: $RELEASE"
 
     :0
     $DELAYED_QUEUE
   }
+  RELEASE_TS
 }