diff --git a/modules/email/mail-queue-inspector.sh b/modules/email/mail-queue-inspector.sh index 221c68c..3fe13c6 100755 --- a/modules/email/mail-queue-inspector.sh +++ b/modules/email/mail-queue-inspector.sh @@ -44,13 +44,8 @@ if [ "$MTA" = "exim" ]; then if [ "$queue_count" -gt 0 ] 2>/dev/null; then print_warning "$queue_count messages in queue" - else - print_success "Mail queue is empty" - fi - echo "" + echo "" - # Show queue details if not empty - if [ "$queue_count" -gt 0 ] 2>/dev/null; then print_header "Recent Queue Messages (last 20)" eval "$SYS_MAIL_CMD_QUEUE_LIST" | head -20 echo "" @@ -64,6 +59,8 @@ if [ "$MTA" = "exim" ]; then else print_success "No frozen messages" fi + else + print_success "Mail queue is empty" fi # ============================================================================ @@ -77,9 +74,9 @@ elif [ "$MTA" = "postfix" ]; then queue_summary=$(eval "$SYS_MAIL_CMD_QUEUE_COUNT") print_info "$queue_summary" - # Extract message count from summary line (number after "in") + # Extract message count from summary line (last number is always message count) # Pattern: "-- 9616 Kbytes in 3 Requests." → Extract "3" - msg_count=$(echo "$queue_summary" | grep -oE 'in [0-9]+' | grep -oE '[0-9]+' || true) + msg_count=$(echo "$queue_summary" | grep -oE '[0-9]+' | tail -1 || true) echo "" if [ -z "$msg_count" ] || [ "$msg_count" -eq 0 ] 2>/dev/null; then @@ -116,9 +113,9 @@ elif [ "$MTA" = "sendmail" ]; then queue_summary=$(eval "$SYS_MAIL_CMD_QUEUE_COUNT") print_info "$queue_summary" - # Extract message count from summary line (number after "in") + # Extract message count from summary line (last number is always message count) # Pattern: "-- 9616 Kbytes in 3 Requests." → Extract "3" - msg_count=$(echo "$queue_summary" | grep -oE 'in [0-9]+' | grep -oE '[0-9]+' || true) + msg_count=$(echo "$queue_summary" | grep -oE '[0-9]+' | tail -1 || true) echo "" if [ -z "$msg_count" ] || [ "$msg_count" -eq 0 ] 2>/dev/null; then