Email::Delete - Delete Messages from Folders |
Email::Delete - Delete Messages from Folders
version 1.022
$Id: Delete.pm,v 1.2 2004/12/17 18:45:50 cwest Exp $
use Email::Delete qw[delete_message]; my $message_id = shift @ARGV; delete_message from => $ENV{MAIL}, matching => sub { my $message = shift; $message->header('Message-ID') =~ $message_id; };
This software will delete messages from a given folder if the test returns true.
delete_message from => 'folder_name', with => 'My::Delete::Package', matching => sub { return_true_for_delete() };
from
is a required parameter, a string containing the folder
name to delete from. By default Email::FolderType
is used
to determine what package to use when deleting a message. To
override the default, specify the with
parameter. Your
package's delete_message
function will be called with the
same arguments that delete_message
from Email::Delete is
called with.
matching
is a required argument. Its value is a code reference.
If the anonymouse subroutine returns a true value, the current
message is deleted. Each message is passed to the matching
test in turn. The first and only argument to matching
is
an Email::Simple
object representing the message.
If you should ever want to stop processing a mailbox, just call
die
from your code reference. A proper deleting package will
not delete mail until all the messages have been scanned. So
if you throw an exception, your mail will be preserved and scanning
will be aborted.
the Email::Simple manpage, the Email::Folder manpage, the Email::LocalDelivery manpage, the perl manpage.
Casey West, <casey@geeknest.com>.
Copyright (c) 2004 Casey West. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Email::Delete - Delete Messages from Folders |