!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/share/doc/libmail-imapclient-perl/examples/   drwxr-xr-x
Free 713.51 GB of 879.6 GB (81.12%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     cyrus_expire.pl (3.37 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#$Id

use Mail::IMAPClient;    # available from http://search.cpan.org/search?mode=module&query=IMAPClient
use IO::File;
use Getopt::Std;
use vars qw/ $opt_d $opt_s $opt_p $opt_u $opt_P $opt_h /;

&getopts('d:s:u:p:P:h');    # -d days_to_keep -u cyrys_user -p cyrus_pswd -s cyrus_server -P port

my $days_to_keep = $opt_d||365;                   # Delete msgs older than -d arg or 365 days
my $cutoff = time - ( $days_to_keep * 24 * 60 * 60 ) ;  # time - arg * 24 * 60 * 60 = cutoff date in seconds 

# Change the following line (or replace it with something better):
$opt_h and die help()."\n";
my $h = $opt_s || "localhost" ; 
my $u = $opt_u || "cyrys" ;
my $p = $opt_p or die "Unable to continue. No password provided.\n" . help();

my $imap = Mail::IMAPClient->new( 
     Server  => "$h", 
     User    => "$u",              # $u, 
     Password=> "$p",            # $p,
     Uid => 1,                # True value
     Port    => $opt_P||143,            # imapd
     Debug => 0,                        # Make true to debug
     Buffer => 4096*10,            # True value; decrease on machines w/little memory
     Fast_io => 1,                  # True value
     Timeout => 30,                  # True value
     # Debug_fh=> IO::File->new(">out.db"), # fhandle
    ) 
or die "$@";
 my $mcnt = my $fcnt = 0;
print "Deleting messages older than ",$imap->Rfc2060_date($cutoff),"\n";
for my $f ( $imap->folders ) {
 print "Expiring $f\n";
 unless ($imap->select($f) ) {
  $imap->setacl($f,$u,"lrswipcda") or warn "Cannot setacl for $f: $@\n" and next;
  $imap->select($f) or warn "Cannot select $f: $@" and next;
 }
 my @expired = $imap->search("SENTBEFORE",$imap->Rfc2060_date($cutoff));
 next unless @expired;
 $mcnt += scalar(@expired); $fcnt ++;
 print "Deleting ",scalar(@expired)," messages from $f\n";
 $imap->delete_message(@expired);
 $imap->expunge;
 $imap->close;
}
 $imap->logout;
 print "Deleted a total of $mcnt messages in $fcnt folders.\n";
exit;


sub help {
    return <<"EOHELP";

Usage:

    $0 [ -d days_to_keep ] [ -s mail_server ] [ -u cyrus_admin_id ] -p cyrus_password
    $0 -h 

    -h           -- prints this here help message
    -d days_to_keep   -- $0 will delete messages older than "days_to_keep". (Default is 365)
    -s mail_server    -- hostname or IP Address of IMAP mail server (defaults to "localhost")
    -u cyrus_admin_id -- user name of Unix account that owns Cyrus server (defaults to "cyrus")
    -p cyrus_password -- password for the "cyrus_admin_id" user account (no default)
    -P cyrus_port     -- port where the cyrus imapd daemon is listening (defaults to value from 
                /etc/services or '143')

EOHELP

}


=head1 AUTHOR 
    
David J. Kernen

The Kernen Group, Inc.

[email protected]

=head1 COPYRIGHT

This example and Mail::IMAPClient are Copyright (c) 2003 
by The Kernen Group, Inc. All rights reserved.

This example is distributed with Mail::IMAPClient and 
subject to the same licensing requirements as Mail::IMAPClient.

imtest is a utility distributed with Cyrus IMAP server, 
Copyright (c) 1994-2000 Carnegie Mellon University.  
All rights reserved. 

=cut

#$Log: cyrus_expire.pl,v $
#Revision 19991216.2  2003/06/12 21:38:31  dkernen
#
#Preparing 2.2.8
#Added Files: COPYRIGHT
#Modified Files: Parse.grammar
#Added Files: Makefile.old
#    Makefile.PL Todo sample.perldb
#    BodyStructure.pm
#    Parse.grammar Parse.pod
#     range.t
#     Thread.grammar
#     draft-crispin-imapv-17.txt rfc1731.txt rfc2060.txt rfc2062.txt
#     rfc2221.txt rfc2359.txt rfc2683.txt
#

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0745 ]--