#!/usr/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, &user_read_dbm_file($in{'user'}), 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'}, ""); @folders = &list_user_folders_sorted($in{'user'}); ($folder) = grep { $_->{'index'} == $in{'folder'} } @folders; # Get folder-selection HTML $sel = &folder_select(\@folders, $folder, "folder", undef, 0, 1); # 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(); # Start of the deletion / move form print &ui_form_start("delete_mail.cgi", "post"); print &ui_hidden("user", $in{'user'}); print &ui_hidden("dom", $in{'dom'}); print &ui_hidden("folder", $folder->{'index'}); print &ui_hidden("mod", &modification_time($folder)); print &ui_hidden("start", $in{'start'}); if ($config{'top_buttons'} && @mail) { &show_buttons(1, \@folders, $folder, \@mail, $in{'user'}); } # Show error opening folder if (@error) { print "<center><b><font color=#ff0000>\n"; print &text('mail_err', $error[0] == 0 ? $error[1] : &text('save_elogin', $error[1])),"\n"; print "</font></b></center>\n"; } # Get the mails @showmail = ( ); for($i=$in{'start'}; $i<@mail && $i<$in{'start'}+$perpage; $i++) { push(@showmail, $mail[$i]); } &mail_has_attachments(\@showmail, $folder); # Show them if (@mail) { &show_mail_table(\@showmail, $folder, 1, $config{'track_read'} ? \%read : undef); } &show_buttons(2, \@folders, $folder, \@mail, $in{'user'}); print &ui_form_end(); if ($config{'arrows'} && @mail) { # Show page flipping arrows at the bottom &show_arrows(); } @grid = ( ); if (@mail) { # Show simple search form push(@grid, &ui_form_start("mail_search.cgi"). &ui_hidden("user", $in{'user'}). &ui_hidden("dom", $in{'dom'}). &ui_hidden("folder", $folder->{'index'}). &ui_hidden("simple", 1). &ui_submit($text{'mail_search2'})." ". &ui_textbox("search", undef, 20). &ui_form_end()); # Show advanced search button push(@grid, &ui_form_start("search_form.cgi"). &ui_hidden("user", $in{'user'}). &ui_hidden("dom", $in{'dom'}). &ui_hidden("folder", $folder->{'index'}). &ui_submit($text{'mail_advanced'}, "advanced"). &ui_form_end()); # Show delete all button push(@grid, &ui_form_start("delete_all.cgi"). &ui_hidden("user", $in{'user'}). &ui_hidden("dom", $in{'dom'}). &ui_hidden("folder", $folder->{'index'}). &ui_submit($text{'mail_delall'}). &ui_form_end()); } # Show page jump form $jumpform = (@mail > $perpage); if ($jumpform) { push(@grid, &ui_form_start("list_mail.cgi"). &ui_hidden("user", $in{'user'}). &ui_hidden("dom", $in{'dom'}). &ui_hidden("folder", $folder->{'index'}). &ui_submit($text{'mail_jump'})." ". &ui_textbox("jump", int($in{'start'} / $perpage)+1, 3)." ". $text{'mail_of'}." ".(int(@mail / $perpage)+1). &ui_form_end()); } # Show the buttons, if any if (@grid) { print &ui_hr(); print &ui_grid_table(\@grid, 4, 100, [ "align=left width=25%", "align=center width=25%", "align=center width=25%", "align=right width=25%" ], "cellpadding=0 cellspacing=0"); } if ($config{'log_read'}) { &webmin_log("read", undef, $in{'user'}, { 'file' => $folder->{'file'} }); } &ui_print_footer(&user_list_link(), $text{'index_return'}); sub show_arrows { my $link = "list_mail.cgi?user=".&urlize($in{'user'})."&folder=".$in{'folder'}; my $left = $in{'start'} ? $link."&start=".($in{'start'}-$perpage) : undef; my $right = $in{'start'}+$perpage < @mail ? $link."&start=".($in{'start'}+$perpage) : undef; my $first = $in{'start'} ? $link."&start=0" : undef; my $last = $in{'start'}+$perpage < @mail ? $link."&start=".(int((scalar(@mail)-$perpage-1)/$perpage + 1)*$perpage) : undef; my $s = @mail-$in{'start'}; my $e = @mail-$in{'start'}-$perpage+1; print &ui_page_flipper( @mail ? &text('mail_pos', $s, $e < 1 ? 1 : $e, scalar(@mail), $sel) : &text('mail_none', $sel), &ui_submit($text{'mail_fchange'}). &ui_hidden("user", $in{'user'}). &ui_hidden("dom", $in{'dom'}), "list_mail.cgi", $left, $right, $first, $last, ); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
xinha | Folder | 0755 |
|
|
CHANGELOG | File | 5.7 KB | 0644 |
|
Makefile | File | 125 B | 0644 |
|
acl_security.pl | File | 3 KB | 0755 |
|
boxes-lib.pl | File | 80.37 KB | 0755 |
|
cgi_args.pl | File | 520 B | 0755 |
|
config | File | 758 B | 0644 |
|
config.info | File | 4.94 KB | 0644 |
|
config.info.ca | File | 5.79 KB | 0644 |
|
config.info.cs | File | 5.2 KB | 0644 |
|
config.info.de | File | 6.27 KB | 0644 |
|
config.info.el | File | 8.14 KB | 0644 |
|
config.info.fi | File | 0 B | 0644 |
|
config.info.fr | File | 6.43 KB | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.it | File | 5.97 KB | 0644 |
|
config.info.ja | File | 5.97 KB | 0644 |
|
config.info.ko | File | 5.29 KB | 0644 |
|
config.info.nl | File | 5.48 KB | 0644 |
|
config.info.no | File | 5.25 KB | 0644 |
|
config.info.pt_BR | File | 0 B | 0644 |
|
config_info.pl | File | 389 B | 0755 |
|
defaultacl | File | 50 B | 0644 |
|
delete_all.cgi | File | 1.25 KB | 0755 |
|
delete_mail.cgi | File | 7 KB | 0755 |
|
detach.cgi | File | 3.19 KB | 0755 |
|
detachall.cgi | File | 1.72 KB | 0755 |
|
find.cgi | File | 731 B | 0755 |
|
folders-lib.pl | File | 103.44 KB | 0755 |
|
index.cgi | File | 2.73 KB | 0755 |
|
list_mail.cgi | File | 5.15 KB | 0755 |
|
log_parser.pl | File | 1.02 KB | 0755 |
|
mail_search.cgi | File | 3.68 KB | 0755 |
|
mailboxes-lib.pl | File | 33.59 KB | 0755 |
|
makelang.pl | File | 1.35 KB | 0755 |
|
module.info | File | 137 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 82 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 145 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 185 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 167 B | 0644 |
|
module.info.ca | File | 97 B | 0644 |
|
module.info.cs | File | 37 B | 0644 |
|
module.info.cs.auto | File | 75 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 72 B | 0644 |
|
module.info.de | File | 77 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 232 B | 0644 |
|
module.info.es | File | 38 B | 0644 |
|
module.info.es.auto | File | 72 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 110 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 141 B | 0644 |
|
module.info.fi | File | 27 B | 0644 |
|
module.info.fi.auto | File | 61 B | 0644 |
|
module.info.fr | File | 40 B | 0644 |
|
module.info.fr.auto | File | 76 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 117 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 108 B | 0644 |
|
module.info.hu | File | 38 B | 0644 |
|
module.info.hu.auto | File | 72 B | 0644 |
|
module.info.it | File | 27 B | 0644 |
|
module.info.it.auto | File | 76 B | 0644 |
|
module.info.ja | File | 39 B | 0644 |
|
module.info.ja.auto | File | 79 B | 0644 |
|
module.info.ko | File | 29 B | 0644 |
|
module.info.ko.auto | File | 65 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 110 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 85 B | 0644 |
|
module.info.ms | File | 73 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 81 B | 0644 |
|
module.info.nl | File | 30 B | 0644 |
|
module.info.nl.auto | File | 57 B | 0644 |
|
module.info.no | File | 27 B | 0644 |
|
module.info.no.auto | File | 47 B | 0644 |
|
module.info.pl | File | 38 B | 0644 |
|
module.info.pl.auto | File | 67 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 94 B | 0644 |
|
module.info.pt_BR | File | 34 B | 0644 |
|
module.info.pt_BR.auto | File | 65 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 116 B | 0644 |
|
module.info.ru | File | 63 B | 0644 |
|
module.info.ru.auto | File | 99 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 120 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 97 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 78 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 154 B | 0644 |
|
module.info.tr | File | 104 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 193 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 117 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 99 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 79 B | 0644 |
|
module.info.zh_TW | File | 33 B | 0644 |
|
module.info.zh_TW.auto | File | 55 B | 0644 |
|
prefs.info | File | 225 B | 0644 |
|
reply_mail.cgi | File | 15.96 KB | 0755 |
|
safeacl | File | 32 B | 0644 |
|
search_form.cgi | File | 1.86 KB | 0755 |
|
send_mail.cgi | File | 9.56 KB | 0755 |
|
slideshow.cgi | File | 1.63 KB | 0755 |
|
useradmin_update.pl | File | 2.33 KB | 0755 |
|
view_mail.cgi | File | 10.44 KB | 0755 |
|