Mail::Dir - Compliant Maildir and Maildir++ delivery mechanism
use Mail::Dir; my $maildir = Mail::Dir->open("$ENV{'HOME'}/Maildir"); $maildir->deliver('somefile.msg'); # # Create a new Maildir++ mailbox with sub-mailboxes # my $maildirPP = Mail::Dir->open("$ENV{'HOME'}/newmaildir", 'maildir++' => 1, 'create' => 1 ); $maildirPP->create_mailbox('INBOX.foo'); $maildirPP->create_mailbox('INBOX.foo.bar'); $maildirPP->select_mailbox('INBOX.foo.bar'); $maildirPP->deliver(\*STDIN);
Mail::Dir provides a straightforward mechanism for delivering mail messages to a Maildir or Maildir++ mailbox.
Mail::Dir
Mail::Dir->open($dir, %opts)
Open or create a mailbox, in a manner dependent on the flags specified in %opts, and returns an object representing the Maildir structure.
Recognized option flags are:
create
When specified, create a Maildir inbox at $dir if one does not already exist.
maildir++
When specified, enable management and usage of Maildir++ sub-mailboxes.
The following methods require Maildir++ extensions to be enabled.
$maildir->select_mailbox($mailbox)
Change the current mailbox to which mail is delivered, to $mailbox.
$maildir->mailbox()
Returns the name of the currently selected mailbox.
$maildir->mailbox_exists($mailbox)
Returns true if $mailbox exists.
$maildir->create_mailbox($mailbox)
Create the new $mailbox if it does not already exist. Will throw an error if the parent mailbox does not already exist.
$maildir->deliver($from)
Deliver a piece of mail from the source indicated by $from. The following types of values can be specified in $from:
A CODE reference
CODE
When passed a CODE reference, the subroutine specified in $from is called, with a file handle passed that the subroutine may write mail data to.
A file handle
The file handle passed in $from is read until end-of-file condition is reached, and spooled to a new message in the current mailbox.
A filename
The message at the filename indicated by $from is spooled into the current mailbox.
$maildir->messages(%opts)
Return a list of Mail::Dir::Message references containing mail messages as selected by the criteria specified in %opts. Options include:
tmp, new, cur
tmp
new
cur
When any of these are set to 1, messages in those queues are processed.
filter
A subroutine can be passed via CODE reference which filters for messages that are desired. Each Mail::Dir::Message object is passed to the subroutine as its sole argument, and is kept if the subroutine returns 1.
$maildir->purge()
Purge all messages in the tmp queue that have not been accessed for the past 36 hours.
Mail::Dir::Message
Alexandra Hrefna Hilmisdóttir <xan@cpan.org>
Copyright (c) 2016, cPanel, Inc. Distributed under the terms of the MIT license. See the LICENSE file for further details.
To install Mail::Dir, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mail::Dir
CPAN shell
perl -MCPAN -e shell install Mail::Dir
For more information on module installation, please visit the detailed CPAN module installation guide.