NAME

Sisimai::Data - Parsed data object

SYNOPSIS

use Sisimai::Data;
my $data = Sisimai::Data->make( 'data' => <Sisimai::Message> object );
for my $e ( @$data ) {
    print $e->reason;               # userunknown, mailboxfull, and so on.
    print $e->recipient->address;   # (Sisimai::Address) envelope recipient address
    print $e->bonced->ymd           # (Sisimai::Time) Date of bounce
}

DESCRIPTION

Sisimai::Data generate parsed data from Sisimai::Message object.

CLASS METHODS

make( Hash )

make generate parsed data and returns an array reference which are including Sisimai::Data objects.

my $mail = Sisimai::Mail->new('/var/mail/root');
while( my $r = $mail->read ) {
    my $mesg = Sisimai::Message->new( 'data' => $r );
    my $data = Sisimai::Data->make( 'data' => $mesg );
    for my $e ( @$data ) {
        print $e->reason;               # userunknown, mailboxfull, and so on.
        print $e->recipient->address;   # (Sisimai::Address) envelope recipient address
        print $e->timestamp->ymd        # (Sisimai::Time) Date of the email bounce
    }
}

INSTANCE METHODS

damn()

damn convert the object to a hash reference.

my $hash = $self->damn;
print $hash->{'recipient'}; # user@example.jp
print $hash->{'timestamp'}; # 1393940000

PROPERTIES

Sisimai::Data have the following properties:

timestamp(Sisimai::Time)

The value of Date: header of the original message or the bounce message.

token(String)

token is a MD5 string generated from the sender address(addresser) and the recipient address.

lhost(String)

Local host name of the email bounce.

rhost(String)

Remote MTA name of the email bounce.

alias(String)

Expanded address of the recipient address.

listid(String)

The value of List-Id header of the original message. If the original message have no such header, this value will be set "".

reason(String)

The reason name of email bounce. The list of all reasons are available at perldoc Sisimai::Reason.

subject(String)

The value of Subject header of the original message encoded in UTF-8.

addresser(Sisimai::Address)

Sender address of the original message. See perldoc Sisimai::Address.

recipienet(Sisimai::Address)

Recipient address of the original message. See perldoc Sisimai::Address.

messageid(String)

The value of Message-Id header of the original message. When the header does not exist in the message, this value will be set "".

replycode(String)

The value of SMTP Reply Code defined in RFC 5321. When the code does not exist in the SMTP response or error message, this value will be set "".

smtpagent(String)

MTA or MSP module name which is used to get bounce reason such as Sendmail, US::Google, and so on. See perldoc Sisimai::MTA or perldoc Sisimai::MSP.

smtpcommand(String)

The last SMTP command name of the session email bounce has occurred.

destination(String)

the domain part of the c<recipient>.

senderdomain(String)

the domain part of the c<addresser>.

feedbacktype(String)

The value of Feedback-Type header of ARF: Abuse Reporting Formatted message.

diagnosticcode(String)

The value of Diagnostic-Code header or error message string in the bounced email.

diagnostictype(String)

SMTP or X-Unix.

deliverystatus(String)

The value of Status header or pseudo D.S.N. value generated from bounce reason or error message string and so on.

timezoneoffset(Integer)

Time zone offset value(seconds).

AUTHOR

azumakuniyuki

COPYRIGHT

Copyright (C) 2014-2015 azumakuniyuki <perl.org@azumakuniyuki.org>, All Rights Reserved.

LICENSE

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