-QUERY='select * from messages where release_ts < strftime("%s", "now")'
-
-$SQLITE -column $DELAYED_QUEUE_DB "$QUERY" | while read msgid basefile ts; do
-
- file="$MAILDIR/$basefile"
- files="$file ${file}:2,"
-
- basename="${file##*/}"
- dirname="${file%/*}"
- case "${dirname##*/}" in
- cur)
- files="$files ${file}:2,S"
- file="${dirname%/cur}/new/$basename"
- files="$files $file ${file}:2,"
- ;;
- new)
- file="${dirname%/new}/cur/$basename"
- files="$files ${file}:2, ${file}:2,S"
- ;;
- esac
-
- found=0
- for file in $files; do
- if [ -f "$file" ]; then
- $RESUBMIT "$file"
- echo "I: resubmitted $msgid"
- found=1
- break
+QUERY='select * from messages where release_ts <= strftime("%s", "now")'
+
+$SQLITE -list -separator ' ' $DELAYED_QUEUE_DB "$QUERY" \
+ | while read msgid basefile ts; do
+
+ file="$MAILDIR/$basefile"
+ files="$file ${file}:2,"
+
+ basename="${file##*/}"
+ dirname="${file%/*}"
+ case "${dirname##*/}" in
+ cur)
+ files="$files ${file}:2,S ${file}:2,R ${file}:2,RS"
+ file="${dirname%/cur}/new/$basename"
+ files="$files $file ${file}:2, ${file}:2,R ${file}:2,RS"
+ ;;
+ new)
+ file="${dirname%/new}/cur/$basename"
+ files="$files ${file}:2, ${file}:2,S"
+ ;;
+ esac
+
+ found=0
+ for file in $files; do
+ if [ -f "$file" ]; then
+ $RESUBMIT "$file"
+ echo "I: resubmitted $msgid"
+ found=1
+ break
+ fi
+ done
+
+ $SQLITE $DELAYED_QUEUE_DB "delete from messages where msgid = '$msgid'"
+
+ if [ $found -eq 0 ]; then
+ echo "E: message $msgid not found in $basefile" >&2