#!/usr/local/bin/perl # list_mail.cgi # List the mail messages for some user in some folder require './mailboxes-lib.pl'; &ReadParse(); &can_user($in{'user'}) || &error($text{'mail_ecannot'}); &is_user($in{'user'}) || -e $in{'user'} || &error($text{'mail_efile'}); $uuser = &urlize($in{'user'}); if ($config{'track_read'}) { dbmopen(%read, "$module_config_directory/$in{'user'}.read", 0600); } # Make sure the mail system is OK $err = &test_mail_system(); if ($err) { &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1); if (!$access{'noconfig'}) { &ui_print_endpage(&text('index_esystem3', "../config.cgi?$module_name", $err)); } else { &ui_print_endpage(&text('mail_esystem', $err)); } } &ui_print_header(undef, $text{'mail_title'}, ""); print &check_clicks_function(); @folders = &list_user_folders_sorted($in{'user'}); ($folder) = grep { $_->{'index'} == $in{'folder'} } @folders; # Get folder-selection HTML $sel = &folder_select(\@folders, $folder, "folder"); # Work out start from jump page $perpage = $folder->{'perpage'} || $config{'perpage'}; if ($in{'jump'} =~ /^\d+$/ && $in{'jump'} > 0) { $in{'start'} = ($in{'jump'}-1)*$perpage; } # View mail from the most recent @mail = reverse(&mailbox_list_mails(-$in{'start'}, -$in{'start'}-$perpage+1, $folder, 1, \@error)); if ($in{'start'} >= @mail && $in{'jump'}) { # Jumped too far! $in{'start'} = @mail - $perpage; @mail = reverse(&mailbox_list_mails(-$in{'start'}, -$in{'start'}-$perpage+1, $folder, 1, \@error)); } # Show page flipping arrows &show_arrows(); print "
\n"; if ($config{'arrows'} && @mail) { # Show page flipping arrows at the bottom &show_arrows(); } if (@mail) { print "| \n"; } if (@mail) { print " |