X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/bda8338eb8f1274f9a1dec73bdb47f80cfe9413f..0bdaf799927d3d663247f2506f23f28497dbdd37:/procmail/tickle diff --git a/procmail/tickle b/procmail/tickle index 8ad5ac9..6b0276a 100644 --- a/procmail/tickle +++ b/procmail/tickle @@ -1,48 +1,66 @@ +# The X-Tickle header has priority over the Original-To address :0 +*$ ^X-Tickle:${RE_SPACE}+\/${RE_NOT_SPACE}+ +{ + TICKLE="$MATCH" + :0 fw + |$FORMAIL -IX-Tickle +} + +:0 E +* ! POSTPONED ?? . * ORIGINAL_TO ?? ^.+@tickle\.madduck\.net$ * ORIGINAL_TO ?? ^\/[^@]+ +{ TICKLE="$MATCH" } + +:0 +* TICKLE ?? . +* ! DEST ?? . { - STAMP + DAILY_DELIVERY_TIME=04:20 + JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`" + :0 - * MATCH ?? ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ - { STAMP="$MATCH (`/bin/date -d @$MATCH +%c`)" } + * TICKLE ?? ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ + { DELAY="@$TICKLE" } :0 E - * MATCH ?? ^[0-9]+m$ - * MATCH ?? ^\/[^m]+ - { DATESTR="$DATE + $MATCH months 00:00" } + * TICKLE ?? ^[0-9]+h$ + * TICKLE ?? ^\/[^h]+ + { DELAY="$DATE + $MATCH hours" } :0 E - * MATCH ?? ^[0-9]+w$ - * MATCH ?? ^\/[^w]+ - { DATESTR="$DATE + $MATCH weeks 00:00" } + * TICKLE ?? ^[0-9]+m$ + * TICKLE ?? ^\/[^m]+ + { DELAY="$JUST_DATE + $MATCH months $DAILY_DELIVERY_TIME" } :0 E - * MATCH ?? ^[0-9]+d?$ - * MATCH ?? ^\/[^d]+ - { DATESTR="$DATE + $MATCH days 00:00" } + * TICKLE ?? ^[0-9]+w$ + * TICKLE ?? ^\/[^w]+ + { DELAY="$JUST_DATE + $MATCH weeks $DAILY_DELIVERY_TIME" } :0 E - * MATCH ?? ^[0-9]+h$ - * MATCH ?? ^\/[^h]+ - { DATESTR="$DATE + $MATCH hours" } + * TICKLE ?? ^[0-9]+d?$ + * TICKLE ?? ^\/[^d]+ + { DELAY="$JUST_DATE + $MATCH days $DAILY_DELIVERY_TIME" } :0 E { - LOG="tickle: invalid date string: $MATCH$NL" + LOG="tickle: invalid tickler date string: $TICKLE$NL" EXITCODE=69 HOST } - :0 - * ! STAMP ?? . - { STAMP=`/bin/date +'%s (%c)' -d "$DATESTR"` } - - LOG="tickle: stamping message $MSGID with $STAMP$NL" + JUST_DATE + DAILY_DELIVERY_TIME - :0 fw - |$FORMAIL -i "X-Tickle: $STAMP" + LOG="tickle: delaying message until $DELAY$NL" + DELAYED_QUEUE=$TICKLER_QUEUE - :0 - $BASE/.tickler/ + # unset DISABLE_DELAYS to enable delaying for tickle messages + DISABLE_DELAYS } + +TICKLE + +# vim:ft=procmail