Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
usermin /
mailbox /
Delete
Unzip
Name
Size
Permission
Date
Action
images
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ulang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
CHANGELOG
15.09
KB
-rw-r--r--
2026-07-19 16:26
add_address.cgi
611
B
-rwxr-xr-x
2026-07-19 16:28
address_chooser.cgi
5.09
KB
-rwxr-xr-x
2026-07-19 16:28
auto.pl
1.94
KB
-rwxr-xr-x
2026-07-19 16:28
boxes-lib.pl
85.02
KB
-rwxr-xr-x
2026-07-19 16:26
classlinks.sh
160
B
-rwxr-xr-x
2026-07-19 16:26
config-ALL-linux
503
B
-rw-r--r--
2026-07-19 16:26
config-aix
482
B
-rw-r--r--
2026-07-19 16:26
config-freebsd
478
B
-rw-r--r--
2026-07-19 16:26
config-hpux
478
B
-rw-r--r--
2026-07-19 16:26
config-irix
477
B
-rw-r--r--
2026-07-19 16:26
config-macos
478
B
-rw-r--r--
2026-07-19 16:26
config-msc-linux
495
B
-rw-r--r--
2026-07-19 16:26
config-netbsd
478
B
-rw-r--r--
2026-07-19 16:26
config-openbsd
478
B
-rw-r--r--
2026-07-19 16:26
config-openserver
483
B
-rw-r--r--
2026-07-19 16:26
config-osf1
484
B
-rw-r--r--
2026-07-19 16:26
config-qnx
499
B
-rw-r--r--
2026-07-19 16:26
config-solaris
477
B
-rw-r--r--
2026-07-19 16:26
config-unixware
477
B
-rw-r--r--
2026-07-19 16:26
config.info
3.23
KB
-rw-r--r--
2026-07-19 16:26
config.info.ca
3.54
KB
-rwxr-xr-x
2026-07-19 16:26
config.info.de
1.59
KB
-rw-r--r--
2026-07-19 16:26
config.info.el
4.76
KB
-rw-r--r--
2026-07-19 16:26
config.info.hu
0
B
-rw-r--r--
2026-07-19 16:26
config.info.nl
2.9
KB
-rwxr-xr-x
2026-07-19 16:26
config.info.no
3.09
KB
-rw-r--r--
2026-07-19 16:26
copy.cgi
848
B
-rwxr-xr-x
2026-07-19 16:28
copy_form.cgi
1.13
KB
-rwxr-xr-x
2026-07-19 16:28
defaultuconfig
763
B
-rw-r--r--
2026-07-19 16:26
delete_folders.cgi
1.32
KB
-rwxr-xr-x
2026-07-19 16:28
delete_mail.cgi
6.94
KB
-rwxr-xr-x
2026-07-19 16:28
detach.cgi
3.12
KB
-rwxr-xr-x
2026-07-19 16:28
detachall.cgi
1.96
KB
-rwxr-xr-x
2026-07-19 16:28
edit_auto.cgi
1.81
KB
-rwxr-xr-x
2026-07-19 16:28
edit_comp.cgi
1.58
KB
-rwxr-xr-x
2026-07-19 16:28
edit_folder.cgi
2.67
KB
-rwxr-xr-x
2026-07-19 16:28
edit_ifolder.cgi
1.05
KB
-rwxr-xr-x
2026-07-19 16:28
edit_imap.cgi
1.86
KB
-rwxr-xr-x
2026-07-19 16:28
edit_pop3.cgi
1.69
KB
-rwxr-xr-x
2026-07-19 16:28
edit_sig.cgi
552
B
-rwxr-xr-x
2026-07-19 16:28
edit_virt.cgi
1.25
KB
-rwxr-xr-x
2026-07-19 16:28
export.cgi
1.32
KB
-rwxr-xr-x
2026-07-19 16:28
folders-lib.pl
133.18
KB
-rwxr-xr-x
2026-07-19 16:26
import.cgi
3.02
KB
-rwxr-xr-x
2026-07-19 16:28
inbox_login.cgi
1.41
KB
-rwxr-xr-x
2026-07-19 16:28
inbox_login_error.cgi
1.17
KB
-rwxr-xr-x
2026-07-19 16:28
inbox_logout.cgi
503
B
-rwxr-xr-x
2026-07-19 16:28
index.cgi
12.29
KB
-rwxr-xr-x
2026-07-19 16:28
list_addresses.cgi
8.52
KB
-rwxr-xr-x
2026-07-19 16:28
list_folders.cgi
5.24
KB
-rwxr-xr-x
2026-07-19 16:28
list_ifolders.cgi
3.02
KB
-rwxr-xr-x
2026-07-19 16:28
mail_search.cgi
7.48
KB
-rwxr-xr-x
2026-07-19 16:28
mailbox-lib.pl
66.15
KB
-rwxr-xr-x
2026-07-19 16:26
module.info
296
B
-rw-r--r--
2026-07-19 16:26
module.info.ar
0
B
-rw-r--r--
2026-07-19 16:26
module.info.ar.auto
256
B
-rw-r--r--
2026-07-19 16:26
module.info.bg
0
B
-rw-r--r--
2026-07-19 16:26
module.info.bg.auto
305
B
-rw-r--r--
2026-07-19 16:26
module.info.ca
26
B
-rw-r--r--
2026-07-19 16:26
module.info.ca.auto
168
B
-rw-r--r--
2026-07-19 16:26
module.info.cs
25
B
-rw-r--r--
2026-07-19 16:26
module.info.cs.auto
142
B
-rw-r--r--
2026-07-19 16:26
module.info.da
0
B
-rw-r--r--
2026-07-19 16:26
module.info.da.auto
159
B
-rw-r--r--
2026-07-19 16:26
module.info.de
119
B
-rw-r--r--
2026-07-19 16:26
module.info.el
0
B
-rw-r--r--
2026-07-19 16:26
module.info.el.auto
357
B
-rw-r--r--
2026-07-19 16:26
module.info.es
26
B
-rw-r--r--
2026-07-19 16:26
module.info.es.auto
163
B
-rw-r--r--
2026-07-19 16:26
module.info.eu
0
B
-rw-r--r--
2026-07-19 16:26
module.info.eu.auto
166
B
-rw-r--r--
2026-07-19 16:26
module.info.fa
0
B
-rw-r--r--
2026-07-19 16:26
module.info.fa.auto
242
B
-rw-r--r--
2026-07-19 16:26
module.info.fi
0
B
-rw-r--r--
2026-07-19 16:26
module.info.fi.auto
149
B
-rw-r--r--
2026-07-19 16:26
module.info.fr
26
B
-rw-r--r--
2026-07-19 16:26
module.info.fr.auto
167
B
-rw-r--r--
2026-07-19 16:26
module.info.hr
0
B
-rw-r--r--
2026-07-19 16:26
module.info.hr.auto
167
B
-rw-r--r--
2026-07-19 16:26
module.info.hu
38
B
-rw-r--r--
2026-07-19 16:26
module.info.hu.auto
173
B
-rw-r--r--
2026-07-19 16:26
module.info.it
0
B
-rw-r--r--
2026-07-19 16:26
module.info.it.auto
151
B
-rw-r--r--
2026-07-19 16:26
module.info.ja
0
B
-rw-r--r--
2026-07-19 16:26
module.info.ja.auto
213
B
-rw-r--r--
2026-07-19 16:26
module.info.ko
0
B
-rw-r--r--
2026-07-19 16:26
module.info.ko.auto
177
B
-rw-r--r--
2026-07-19 16:26
module.info.ms
0
B
-rw-r--r--
2026-07-19 16:26
module.info.ms.auto
137
B
-rw-r--r--
2026-07-19 16:26
module.info.nl
29
B
-rw-r--r--
2026-07-19 16:26
module.info.nl.auto
137
B
-rw-r--r--
2026-07-19 16:26
module.info.no
19
B
-rw-r--r--
2026-07-19 16:26
module.info.no.auto
122
B
-rw-r--r--
2026-07-19 16:26
module.info.pl
179
B
-rw-r--r--
2026-07-19 16:26
module.info.pl.auto
170
B
-rw-r--r--
2026-07-19 16:26
module.info.pt
0
B
-rw-r--r--
2026-07-19 16:26
module.info.pt.auto
159
B
-rw-r--r--
2026-07-19 16:26
module.info.pt_BR
0
B
-rw-r--r--
2026-07-19 16:26
module.info.pt_BR.auto
165
B
-rw-r--r--
2026-07-19 16:26
module.info.ru
55
B
-rw-r--r--
2026-07-19 16:26
module.info.ru.auto
264
B
-rw-r--r--
2026-07-19 16:26
module.info.sk
0
B
-rw-r--r--
2026-07-19 16:26
module.info.sk.auto
162
B
-rw-r--r--
2026-07-19 16:26
module.info.sv
0
B
-rw-r--r--
2026-07-19 16:26
module.info.sv.auto
150
B
-rw-r--r--
2026-07-19 16:26
module.info.tr
0
B
-rw-r--r--
2026-07-19 16:26
module.info.tr.auto
172
B
-rw-r--r--
2026-07-19 16:26
module.info.uk
0
B
-rw-r--r--
2026-07-19 16:26
module.info.uk.auto
298
B
-rw-r--r--
2026-07-19 16:26
module.info.zh
0
B
-rw-r--r--
2026-07-19 16:26
module.info.zh.auto
141
B
-rw-r--r--
2026-07-19 16:26
module.info.zh_TW
0
B
-rw-r--r--
2026-07-19 16:26
module.info.zh_TW.auto
147
B
-rw-r--r--
2026-07-19 16:26
newfolder.cgi
223
B
-rwxr-xr-x
2026-07-19 16:28
print_mail.cgi
1.33
KB
-rwxr-xr-x
2026-07-19 16:28
quotacheck.pl
3.18
KB
-rwxr-xr-x
2026-07-19 16:28
reply_mail.cgi
26.61
KB
-rwxr-xr-x
2026-07-19 16:28
save_address.cgi
1.01
KB
-rwxr-xr-x
2026-07-19 16:28
save_allow.cgi
761
B
-rwxr-xr-x
2026-07-19 16:28
save_auto.cgi
1.13
KB
-rwxr-xr-x
2026-07-19 16:28
save_comp.cgi
1.24
KB
-rwxr-xr-x
2026-07-19 16:28
save_folder.cgi
3.91
KB
-rwxr-xr-x
2026-07-19 16:28
save_group.cgi
797
B
-rwxr-xr-x
2026-07-19 16:28
save_ifolder.cgi
1.78
KB
-rwxr-xr-x
2026-07-19 16:28
save_imap.cgi
1.85
KB
-rwxr-xr-x
2026-07-19 16:28
save_pop3.cgi
1.63
KB
-rwxr-xr-x
2026-07-19 16:28
save_sig.cgi
648
B
-rwxr-xr-x
2026-07-19 16:28
save_virt.cgi
1.01
KB
-rwxr-xr-x
2026-07-19 16:28
search_form.cgi
2.58
KB
-rwxr-xr-x
2026-07-19 16:28
send_mail.cgi
18.99
KB
-rwxr-xr-x
2026-07-19 16:28
slideshow.cgi
1.78
KB
-rwxr-xr-x
2026-07-19 16:28
sort.cgi
1.14
KB
-rwxr-xr-x
2026-07-19 16:28
specialsync.cgi
1.2
KB
-rwxr-xr-x
2026-07-19 16:28
system_info.pl
1.6
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info
5.31
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.ca
5.59
KB
-rwxr-xr-x
2026-07-19 16:26
uconfig.info.cs
4.97
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.da
0
B
-rw-r--r--
2026-07-19 16:26
uconfig.info.de
5.86
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.el
7.3
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.es
0
B
-rw-r--r--
2026-07-19 16:26
uconfig.info.fr
145
B
-rw-r--r--
2026-07-19 16:26
uconfig.info.hu
0
B
-rw-r--r--
2026-07-19 16:26
uconfig.info.it
3.27
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.nl
5.21
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.no
4.96
KB
-rw-r--r--
2026-07-19 16:26
uconfig.info.pl
0
B
-rwxr-xr-x
2026-07-19 16:26
uconfig.info.pt_BR
4.95
KB
-rw-r--r--
2026-07-19 16:26
uconfig_info.pl
317
B
-rwxr-xr-x
2026-07-19 16:26
view_mail.cgi
17.66
KB
-rwxr-xr-x
2026-07-19 16:28
virtualize.cgi
753
B
-rwxr-xr-x
2026-07-19 16:28
webmin_menu.pl
4.67
KB
-rw-r--r--
2026-07-19 16:26
xhr-lib.pl
2.34
KB
-rw-r--r--
2026-07-19 16:28
xhr.cgi
351
B
-rwxr-xr-x
2026-07-19 16:28
Save
Rename
#!/usr/bin/perl # mail_search.cgi # Find mail messages matching some pattern use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; our (%text, %in, %userconfig); our $search_folder_id; require './mailbox-lib.pl'; &ReadParse(); my $limit = { }; my $statusmsg; my @fields; if (!$in{'status_def'} && defined($in{'status'})) { $statusmsg = &text('search_withstatus', $text{'view_mark'.$in{'status'}}); } if ($in{'simple'}) { # Make sure a search was entered $in{'search'} || &error($text{'search_ematch'}); if ($userconfig{'search_latest'}) { $limit->{'latest'} = $userconfig{'search_latest'}; } } elsif ($in{'spam'}) { # Make sure a spam score was entered $in{'score'} =~ /^\d+$/ || &error($text{'search_escore'}); } else { # Validate search fields for(my $i=0; defined($in{"field_$i"}); $i++) { if ($in{"field_$i"}) { $in{"what_$i"} || &error(&text('search_ewhat', $i+1)); my $neg = $in{"neg_$i"} ? "!" : ""; push(@fields, [ $neg.$in{"field_$i"}, $in{"what_$i"}, $in{"re_$i"} ]); } } @fields || $statusmsg || &error($text{'search_enone'}); if (!defined($in{'limit'})) { if ($userconfig{'search_latest'}) { $limit = { 'latest' => $userconfig{'search_latest'} }; } } elsif (!$in{'limit_def'}) { $in{'limit'} =~ /^\d+$/ || &error($text{'search_elatest'}); $limit->{'latest'} = $in{'limit'}; } } my $limitmsg; my $folder; if ($limit && $limit->{'latest'}) { $limitmsg = &text('search_limit', $limit->{'latest'}); } my @folders = &list_folders(); if ($in{'lastfolder'}) { my $fid = &get_last_folder_id(); if ($fid) { $folder = &find_named_folder($fid, \@folders); if ($folder) { $in{'folder'} = $folder->{'index'}; } } } if ($in{'id'}) { $folder = &find_named_folder($in{'id'}, \@folders); $folder || &error("Failed to find folder $in{'id'}"); $in{'folder'} = $folder->{'index'}; } elsif ($in{'folder'} >= 0) { $folder = $folders[$in{'folder'}]; } if ($folder && $folder->{'id'} eq $search_folder_id) { # Cannot search searchs! &error($text{'search_eself'}); } # Create a virtual folder for the search results my $virt; my $virt_exists = 0; if ($in{'dest_def'} || !defined($in{'dest'})) { # Use the default search results folder ($virt) = grep { $_->{'type'} == 6 && $_->{'id'} == 1 } @folders; if ($virt) { $virt_exists = 1; } else { $virt = { 'id' => $search_folder_id, 'type' => 6, }; } $virt->{'name'} = $text{'search_title'}; } else { # Create a new virtual folder $in{'dest'} || &error($text{'search_edest'}); $virt = { 'type' => 6, 'name' => $in{'dest'} }; } # Lock the output folder if ($virt_exists) { my %act; $act{'search'} = $in{'search'} if ($in{'simple'}); &lock_folder($virt, \%act); } # Show some progress if it's a big folder my $large_search = 0; if ($in{'returned_format'} ne "json" && (!$in{'simple'} || &folder_size($folder) > 100*1024*1024)) { $large_search = 1; &ui_print_unbuffered_header(undef, $text{'search_title'}, ""); if ($in{'simple'}) { print &text('search_doing', "<i>".$in{'search'}."</i>", $folder->{'name'}),"\n"; } else { print $text{'search_doing2'},"\n"; } print &text('search_results', "index.cgi?id=".&urlize($virt->{'id'})),"<p>\n"; } my @rv; my $msg; my @sfolders; my $multi_folder; if ($in{'simple'}) { # Just search by Subject and From (or To) in one folder my ($mode, $words) = &parse_boolean($in{'search'}); my $who = $folder->{'sent'} ? 'to' : 'from'; if ($mode == 0) { # Search was like 'foo' or 'foo bar' # Can just do a single 'or' search my @searchlist = map { ( [ 'subject', $_ ], [ $who, $_ ] ) } @$words; @rv = &mailbox_search_mail(\@searchlist, 0, $folder, $limit, 1); } elsif ($mode == 1) { # Search was like 'foo and bar' # Need to do two 'and' searches and combine my @searchlist1 = map { ( [ 'subject', $_ ] ) } @$words; my @rv1 = &mailbox_search_mail(\@searchlist1, 1, $folder, $limit, 1); my @searchlist2 = map { ( [ $who, $_ ] ) } @$words; my @rv2 = &mailbox_search_mail(\@searchlist2, 1, $folder, $limit, 1); @rv = @rv1; my %gotid = map { $_->{'id'}, 1 } @rv; foreach my $mail (@rv2) { push(@rv, $mail) if (!$gotid{$mail->{'id'}}); } } else { &error($text{'search_eboolean'}); } foreach my $mail (@rv) { $mail->{'folder'} = $folder; } if ($statusmsg) { @rv = &filter_by_status(\@rv, $in{'status'}); } $msg = &text('search_msg2', "<i>".&html_escape($in{'search'})."</i>"); } elsif ($in{'spam'}) { # Search by spam score, using X-Spam-Level header my $stars = "*" x $in{'score'}; @rv = &mailbox_search_mail([ [ "x-spam-level", $stars ] ], 0, $folder, $limit, 1); foreach my $mail (@rv) { $mail->{'folder'} = $folder; } $msg = &text('search_msg5', $in{'score'}); } else { # Complex search, perhaps over multiple folders! if ($in{'folder'} == -2) { # All local folders, except composite and virtual @sfolders = grep { !$_->{'remote'} && $_->{'type'} != 5 && $_->{'type'} != 6 } @folders; $multi_folder = 1; } elsif ($in{'folder'} == -1) { # All folders, except composite and virtual @sfolders = grep { $_->{'type'} != 5 && $_->{'type'} != 6 } @folders; $multi_folder = 1; } else { @sfolders = ( $folder ); } my @frv; foreach my $sf (@sfolders) { my @frv = &mailbox_search_mail(\@fields, $in{'and'}, $sf, $limit, 1); foreach my $mail (@frv) { $mail->{'folder'} = $sf; } if ($in{'attach'}) { # Limit to those with an attachment my @attach = &mail_has_attachments(\@frv, $sf); my @newfrv = ( ); for(my $i=0; $i<@frv; $i++) { push(@newfrv, $frv[$i]) if ($attach[$i]); } @frv = @newfrv; } push(@rv, @frv); } if ($statusmsg) { # Limit by status (read, unread, special) @rv = &filter_by_status(\@rv, $in{'status'}); } if (@fields == 1) { my $stext = $fields[0]->[1]; $stext =~ s/^(\.\*|\^)//; $stext =~ s/(\.\*|\$)$//; $msg = &text('search_msg6', "<i>".&html_escape($stext)."</i>", "<i>".&html_escape($fields[0]->[0])."</i>"); } else { $msg = $text{'search_msg4'}; } } $msg .= " $limitmsg" if ($limitmsg); $msg .= " $statusmsg" if ($statusmsg); # Populate folder for the search results $virt->{'delete'} = 1; $virt->{'members'} = [ map { [ $_->{'folder'}, $_->{'id'} ] } @rv ]; $virt->{'msg'} = $msg; if ($folder) { # Use same From/To display mode as original folder $virt->{'show_to'} = $folder->{'show_to'}; $virt->{'show_from'} = $folder->{'show_from'}; $virt->{'spam'} = $folder->{'spam'}; $virt->{'sent'} = $folder->{'sent'}; $virt->{'drafts'} = $folder->{'drafts'}; } else { # Use default From/To mode delete($virt->{'show_to'}); delete($virt->{'show_from'}); delete($virt->{'spam'}); delete($virt->{'sent'}); delete($virt->{'drafts'}); } &delete_new_sort_index($virt); &save_folder($virt, $virt); &unlock_folder($virt) if ($virt_exists); if ($in{'returned_format'} eq "json") { #Return in JSON format if needed my %search; $search{'folder'} = $virt->{'index'}; $search{'searched'} = $in{'search'}; $search{'searched_message'} = $msg; $search{'searched_folder_index'} = $in{'folder'}; $search{'searched_folder_name'} = $folder->{'name'}; $search{'searched_folder_id'} = $folder->{'id'}; $search{'searched_folder_file'} = $folder->{'file'}; print_json(\%search); } elsif ($large_search) { # JS redirect to search results folder print &js_redirect("index.cgi?id=$virt->{'id'}&refresh=2"); &ui_print_footer("index.cgi?folder=$in{'folder'}", $text{'mail_return'}); } else { # Redirect to it &redirect("index.cgi?id=$virt->{'id'}&refresh=2"); } &pop3_logout_all();