Index: /trunk/server/fedora/config/etc/scripts/prune-mailq
===================================================================
--- /trunk/server/fedora/config/etc/scripts/prune-mailq	(revision 2656)
+++ /trunk/server/fedora/config/etc/scripts/prune-mailq	(revision 2657)
@@ -7,9 +7,13 @@
     $0 list-from
     $0 list-to
-    $0 show-rand
+    $0 show-rand [from|to] [regex]
     $0 email lockers...
     $0 purge-from lockers...
     $0 purge-to lockers..."
 
+usage() {
+    echo "$usage" >&2;
+    exit 1
+}
 clean_locker() {
     echo "${1%%@scripts.mit.edu}"
@@ -27,5 +31,16 @@
 
 show_rand() {
-    files=$(ls /var/spool/postfix/deferred/?/* | shuf | head -n 3)
+    if [[ $# -eq 0 ]]; then
+	files=$(ls /var/spool/postfix/deferred/?/* | shuf | head -n 3)
+    else
+	match=$2
+	case "$1" in
+	    from) dir=7;;
+	    to) dir=8;;
+	    *) usage;;
+	esac
+	msgids=$(mailq | tail -n +2 | grep -v '^ *(' | awk "BEGIN { RS = \"\" } (\$$dir ~ /$match/) { print \$1 }" | shuf | head -n 3)
+	files=$(for msgid in $msgids; do echo /var/spool/postfix/deferred/${msgid:0:1}/$msgid; done)
+    fi
     for file in $files; do
         echo ">>>> $file";
@@ -99,11 +114,10 @@
     list-from) list_from;;
     list-to) list_to;;
-    show-rand) show_rand;;
+    show-rand) show_rand "$@";;
     email) tmpl_email "$@";;
     purge-from) purge_from "$@";;
     purge-to) purge_to "$@";;
     *)
-        echo "$usage" >&2;
-        exit 1
+	usage
         ;;
 esac
