NAME

Sisimai - Mail Analyzing Interface for bounce mails.

SYNOPSIS

use Sisimai;

DESCRIPTION

Sisimai is the system formerly known as bounceHammer 4, is a Pelr module for analyzing bounce mails and generate structured data in a JSON format (YAML is also available if "YAML" module is installed on your system) from parsed bounce messages. Sisimai is a coined word: Sisi (the number 4 is pronounced "Si" in Japanese) and MAI (acronym of "Mail Analyzing Interface").

BASIC USAGE

make('/path/to/mbox', delivered = 1)>

make method provides feature for getting parsed data from bounced email messages like following.

use Sisimai;
my $v = Sisimai->make('/path/to/mbox'); # or Path to Maildir

if( defined $v ) {
    for my $e ( @$v ) {
        print ref $e;                   # Sisimai::Data
        print ref $e->recipient;        # Sisimai::Address
        print ref $e->timestamp;        # Sisimai::Time

        print $e->addresser->address;   # shironeko@example.org # From
        print $e->recipient->address;   # kijitora@example.jp   # To
        print $e->recipient->host;      # example.jp
        print $e->deliverystatus;       # 5.1.1
        print $e->replycode;            # 550
        print $e->reason;               # userunknown

        my $h = $e->damn;               # Convert to HASH reference
        my $j = $e->dump('json');       # Convert to JSON string
        my $y = $e->dump('yaml');       # Convert to YAML string
    }

    # Dump entire list as a JSON 
    use JSON '-convert_blessed_universally';
    my $json = JSON->new->allow_blessed->convert_blessed;

    printf "%s\n", $json->encode( $v );
}

If you want to get bounce records which reason is "delivered", set "delivered" option to make() method like the following:

my $v = Sisimai->make('/path/to/mbox', 'delivered' => 1);

dump('/path/to/mbox', delivered = 1)>

dump method provides feature to get parsed data from bounced email as JSON.

use Sisimai;
my $v = Sisimai->dump('/path/to/mbox'); # or Path to Maildir
print $v;                               # JSON string

engine()

engine method provides table including parser engine list and its description.

use Sisimai;
my $v = Sisimai->engine();
for my $e ( keys %$v ) {
    print $e;           # Sisimai::MTA::Sendmail
    print $v->{ $e };   # V8Sendmail: /usr/sbin/sendmail
}

SEE ALSO

Sisimai::Mail - Mailbox or Maildir object
Sisimai::Data - Parsed data object
http://libsisimai.org/ - Sisimai — A successor to bounceHammer, Library to parse error mails
https://tools.ietf.org/html/rfc3463 - RFC3463: Enhanced Mail System Status Codes
https://tools.ietf.org/html/rfc3464 - RFC3464: An Extensible Message Format for Delivery Status Notifications
https://tools.ietf.org/html/rfc5321 - RFC5321: Simple Mail Transfer Protocol
https://tools.ietf.org/html/rfc5322 - RFC5322: Internet Message Format

REPOSITORY

https://github.com/sisimai/p5-Sisimai - Sisimai on GitHub

WEB SITE

http://libsisimai.org/ - A successor to bounceHammer, Library to parse error mails.

https://github.com/sisimai/rb-Sisimai - Ruby version of Sisimai

AUTHOR

azumakuniyuki

COPYRIGHT

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

LICENSE

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