From 37beab77ba2edeaacb8386dcf03ed958cc15fd4b Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Tue, 2 Jul 2024 21:21:21 -0700 Subject: [PATCH] Show mail queue directory --- postfix/lang/en | 8 ++++++++ postfix/postfix-lib.pl | 5 +++++ postfix/view_mailq.cgi | 15 +++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/postfix/lang/en b/postfix/lang/en index a76c755a4..10f91f1b9 100644 --- a/postfix/lang/en +++ b/postfix/lang/en @@ -513,6 +513,14 @@ mail_rfc=From line mail_move=Move to: mail_eexists=Message no longer exists! mail_qfile=Mail queue file +mail_qlast=Last retried at +mail_qdir=Mail queue status +mail_qdir_active=Active +mail_qdir_incoming=Incoming +mail_qdir_deferred=Deferred +mail_qdir_corrupt=Corrupt +mail_qdir_hold=On hold +mail_qdir_maildrop=Mail drop view_title=Read Email view_desc=Message $1 in $2 diff --git a/postfix/postfix-lib.pl b/postfix/postfix-lib.pl index 5b4902f77..9ce9e7196 100755 --- a/postfix/postfix-lib.pl +++ b/postfix/postfix-lib.pl @@ -1505,6 +1505,11 @@ foreach $h (@headers) { $mail->{'header'}->{lc($h->[0])} = $h->[1]; } $mail->{'file'} = $file; +my @st = stat($file); +$mail->{'last_retry'} = $st[9]; +if ($file =~ /^\Q$config{'mailq_dir'}\E\/([^\/]+)\//) { + $mail->{'mailq_dir'} = $1; + } return $mail; } diff --git a/postfix/view_mailq.cgi b/postfix/view_mailq.cgi index 3fcd38195..5b2644e9e 100755 --- a/postfix/view_mailq.cgi +++ b/postfix/view_mailq.cgi @@ -53,8 +53,10 @@ if ($in{'headers'}) { print &ui_table_row($h->[0], &html_escape(&decode_mimewords($h->[1])), 1, [ "nowrap" ]); } - print &ui_table_row($text{'mail_qfile'}, - "".&html_escape($mail->{'file'}).""); + if ($mail->{'file'}) { + print &ui_table_row($text{'mail_qfile'}, + "".&html_escape($mail->{'file'}).""); + } } else { # Just show the most useful headers @@ -70,6 +72,15 @@ else { print &ui_table_row($text{'mail_subject'}, &html_escape($mail->{'header'}->{'subject'})); } +if ($mail->{'last_retry'}) { + print &ui_table_row($text{'mail_qlast'}, + &make_date($mail->{'last_retry'})); + } +if ($mail->{'mailq_dir'}) { + print &ui_table_row($text{'mail_qdir'}, + $text{'mail_qdir_'.$mail->{'mailq_dir'}} || + $mail->{'mailq_dir'}); + } print &ui_table_end(); # Find body attachment