On Mar 2, 2010, at 3:31 PM, Trey Nolen wrote:
> In the past, we have been using Sqwebmail to remove email from the Trash 
> folder periodically (by default 7 days).  Now, we have migrated to a new 
> server using the new Vpopmail which no longer supports Sqwebmail.  We have 
> moved to SquirrelMail for our main webmail interface. I would still like to 
> be able to remove deleted items after 7 days.  I have seen the Proon plugin 
> for SquirrelMail, but I believe it is too complex for most users, and it also 
> will not let us specify global defaults.   Does anyone out there have a 
> solution they are using?

It's a bit of a hack, but here's what I'm doing right now:

#!/usr/bin/perl

$|++;
$days = 60;

@globs = (
        '*/*/Maildir/.Trash*/{cur,new}',
        '?/*/*/Maildir/.Trash*/{cur,new}',
        '*/?/*/Maildir/.Trash*/{cur,new}',
        '?/*/?/*/Maildir/.Trash*/{cur,new}',

        '*/*/Maildir/.Deleted Messages*/{cur,new}',
        '?/*/*/Maildir/.Deleted Messages*/{cur,new}',
        '*/?/*/Maildir/.Deleted Messages*/{cur,new}',
        '?/*/?/*/Maildir/.Deleted Messages*/{cur,new}'
);

$c = 0;

print "Deleting mail in .Trash and .Deleted Messages folders, over $days days 
old.\n";

foreach $path (@globs)
{
        while ($name = glob ('/home/vpopmail/domains/' . $path))
        {
                opendir (D, $name);
                while ($f = readdir(D))
                {
                        # skip non-files
                        next if (! -f "$name/$f");
                        $t = -M "$name/$f";
                        if ($t > $days)
                        {
                                unlink "$name/$f";
                                $c++;
                        }
                }
        }
}

print "Deleted $c messages over $days days old\n";


-Tom
!DSPAM:4b94359132711951920405!

Reply via email to