X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/2fe122be2f3654cdb90e54d784d4eee8f5058879..1d4cb849d463ee17a5729b30e379be7c57ed2bee:/procmail/delay-delivery diff --git a/procmail/delay-delivery b/procmail/delay-delivery index e69de29..c1ca0c0 100644 --- a/procmail/delay-delivery +++ b/procmail/delay-delivery @@ -0,0 +1,47 @@ +# create table messages (msgid text unique not null, filename text +# primary key not null unique, release_ts integer not null); + +#TODO: create config/delay-(disabled|tonight|weekend) + +:0 +* DELAY ?? . +* ! DELAYED ?? . +{ + :0 + * DELAY ?? ^[0-9] + { DELAY="now + $DELAY" } + + #TODO: for tickling, use header date + RELEASE="`$BIN_DATE -d \"$DELAY\" +'%s %c'`" + + :0 + *$ RELEASE ?? ^\/${RE_NOT_SPACE}+ + { RELEASE_TS=$MATCH } + + :0 + *$ $RELEASE_TS ^0 + *$ -$OURDATE_TS ^0 + { + :0 + *$ RELEASE ?? ^[0-9]+${RE_SPACE}+\/.+ + { RELEASE_TIME="$MATCH" } + + LOG="delay: delay delivery of $MSGID until $RELEASE_TIME$NL" + + DELAYED_QUEUE_DB=$PMVAR/delayed-queue.sqlite + DO_QUERY="$SQLITE $DELAYED_QUEUE_DB" + + DATA="$MSGID" + INCLUDERC=$PMDIR/sql-escape + + Q="insert into messages values + ($DATA, '\\'\$DESTFILE\\'', $RELEASE_TS)" + TRAP="$TRAP; $DO_QUERY '$Q'" + + :0 fw + |$FORMAIL -I "X-Delayed: $RELEASE_TS ($RELEASE_TIME)" + + :0 + $DELAYED_QUEUE + } +}