NAME

Sisimai::Mail - Handler of Mbox/Maildir for reading each mail.

SYNOPSIS

use Sisimai::Mail;
my $mailbox = Sisimai::Mail->new('/var/mail/root');
while( my $r = $mailbox->read ) {
    print $r;
}
$mailbox->close;

my $maildir = Sisimai::Mail->new('/home/neko/Maildir/cur');
while( my $r = $maildir->read ) {
    print $r;
}
$maildir->close;

my $mailtxt = 'From Mailer-Daemon ...';
my $mailobj = Sisimai::Mail->new(\$mailtxt);
while( my $r = $mailobj->read ) {
    print $r;
}

DESCRIPTION

Sisimai::Mail is a handler for reading a UNIX mbox, a Maildir, a bounce object as a JSON string, or any email message input from STDIN, variable. It is a wrapper class of the following child classes: * Sisimai::Mail::Mbox * Sisimai::Mail::Maildir * Sisimai::Mail::STDIN * Sisimai::Mail::Memory

CLASS METHODS

new(path to mbox|Maildir/)

new() is a constructor of Sisimai::Mail

my $mailbox = Sisimai::Mail->new('/var/mail/root');
my $maildir = Sisimai::Mail->new('/home/nyaa/Maildir/cur');
my $mailtxt = 'From Mailer-Daemon ...';
my $mailobj = Sisimai::Mail->new(\$mailtxt);

INSTANCE METHODS

path()

path() returns the path to mbox or Maildir.

print $mailbox->path;   # /var/mail/root

mbox()

type() Returns the name of data type

print $mailbox->type;   # mailbox or maildir, or stdin.

mail()

mail() returns Sisimai::Mail::Mbox object or Sisimai::Mail::Maildir object.

my $o = $mailbox->mail;
print ref $o;   # Sisimai::Mail::Mbox

read()

read() works as a iterator for reading each email in mbox or Maildir. It calls Sisimai::Mail::Mbox->read or Sisimai::Mail::Maildir->read method.

my $mailbox = Sisimai::Mail->new('/var/mail/neko');
while( my $r = $mailbox->read ) {
    print $r;   # print each email in /var/mail/neko
}
$mailbox->close;

close()

close() Close the handle of the mailbox or the Maildir/.

my $o = $mailbox->close;
print $o;   # 1 = Successfully closed, 0 = already closed.

AUTHOR

azumakuniyuki

COPYRIGHT

Copyright (C) 2014-2016,2018 azumakuniyuki, All rights reserved.

LICENSE

This software is distributed under The BSD 2-Clause License.