#!/bin/bash ################################################################################ # Mail Queue Inspector ################################################################################ # Purpose: View and analyze mail queue ################################################################################ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" source "$SCRIPT_DIR/lib/common-functions.sh" source "$SCRIPT_DIR/lib/system-detect.sh" source "$SCRIPT_DIR/lib/email-functions.sh" show_banner "Mail Queue Inspector" # Detect MTA MTA=$(detect_mta) if [ "$MTA" = "unknown" ]; then print_error "No supported mail server (Exim/Postfix) detected" exit 1 fi print_info "Detected mail server: $MTA" echo "" # Show queue summary if [ "$MTA" = "exim" ]; then print_header "Queue Summary" exim -bpc | while read count; do if [ "$count" -gt 0 ]; then print_warning "$count messages in queue" else print_success "Mail queue is empty" fi done echo "" # Show queue details if not empty queue_count=$(exim -bpc) if [ "$queue_count" -gt 0 ]; then print_header "Recent Queue Messages (last 20)" exim -bp | head -40 echo "" print_header "Frozen Messages" frozen=$(exim -bp | grep frozen | wc -l) if [ "$frozen" -gt 0 ]; then print_warning "$frozen frozen messages found" exim -bp | grep frozen | head -10 else print_success "No frozen messages" fi fi elif [ "$MTA" = "postfix" ]; then print_header "Queue Summary" mailq | tail -1 echo "" print_header "Queue Details" mailq | head -50 fi echo "" print_info "Use 'exim -Mvl ' to view message details" print_info "Use 'exim -Mrm ' to remove a message" echo ""