:0 * ^X-Mailer: swaks { DELAY="30 seconds" } # create table messages (msgid text unique not null, filename text # primary key not null unique, release_ts integer not null); :0 * DELAY ?? . { #TODO: for tickling, use header date RELEASE="`date -d \"now + $DELAY\" +'%s %c'`" :0 *$ RELEASE ?? ^\/${RE_NOT_SPACE}+ { RELEASE_TS=$MATCH } :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-Delay: $RELEASE_TS ($RELEASE_TIME)" :0 $DELAYED_QUEUE }