Re: Trash folder maintenance

Tom Collins <[email protected]>
Newsgroups gmane.mail.vpopmail
Message-ID <[email protected]>
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!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.