Mail Analyzing Interface for email bounce: A Perl module to parse RFC5322 bounce mails and generating structured data as JSON from parsed results. Formerly known as bounceHammer 4: an error mail analyzer.
5.7.23
returned from Office365 is an error related to SPF vilation (authfailure)alias
address correctly when an email forwarded and bouncedSisimai::RFC5322->received
now returns a list including all the elements except date time and (comments) found in the Received
headerSisimai::Rhost::Mimecast
AuthFailure
Blocked
Expired
MailboxFull
SecurityError
SpamDetected
Suspend
t/023-mail-stdin.t
5.7.28
, 5.7.29
and 5.7.30
described in https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml
reason
of postfix-28.eml
and postfix-29.eml
in decoded results have been fixed to notcompliantrfc
.Sisimai::Rhost::Google
.t/500-fact.t
and t/600-lhost-code.t
at the code use YAML;
. In Sisimai, The YAML module is an optional and not required. Thanks to @eserteSisimai->make
marked as obsoleted, use Sisimai->rise
insteadvacation
by default. Use vacation => 1
option at Sisimai->rise()
method to get the parsed results for vacation
reason. #436 #437Sisimai::Data
and Sisimai::Fact
Sisimai::Data
class has been renamed to Sisimai::Fact
Sisimai::Data->softboucne
marked as obsoleted and will be removed at v5.1.0, use
Sisimai::Fact->hardbounce
insteadSisimai::Message
Sisimai::Message
no longer create an objectSisimai::Message->make
has been renamed to Sisimai::Message->rise
hook
for a callback has been removed from Sisimai->make
and Sisimai->dump
.
Use the first element of the c___
parameter for setting a callback method instead.c___
is a parameter of Sisimai->rise
and Sisimai->dump
, is an array refer-
ence and have two elements:c___
is the same as the hook
parameter, is for a callback method
email headers and entire message bodyc___
parameter is for a callback method for each email file in
Maildir/. The callback method is called at the end of each email file parsing.AuthFailure
is a bounce reason which rejected due to SPF, DKIM, or DMARC failure #467BadReputation
is a bounce reason which rejected due to an IP address reputation #469NotCompliantRFC
is a bounce reason which rejected due to non-compliance with RFCRequirePTR
is a bounce reason which rejected due to missing PTR or having invalid PTRSpeeding
is a bounce reason which rejected due to exceeding a rate limit or sending too
fast #466Sisimai::RFC2045
: Born again Sisimai::MIME
for compatibility with the Go language
version of Sisimai #407Sisimai::Message->rise()
parses twice when the entire message body of a bounced mail is
multi parted begins with "message/rfc822".Sisimai::STMP::Transcript
for parsing a transcript of session logfor
Sisimai::SMTP::Command->test
Sisimai::SMTP::Reply->test
Sisimai::SMTP::Status->test
Sisimai::SMTP::Status->prefer
Sisimai::String->aligned
Sisimai::String->ipv4
Sisimai::Rhost
:
Sisimai::Rhost::Microsoft
(ExchangeOnline)Sisimai::Rhost::Google
(GoogleApps)Sisimai::Rhost::Tencent
(TencentQQ)lhost-postfix-76.eml
(userunknown)lhost-postfix-77.eml
(norelaying)lhost-postfix-78.eml
(contenterror)Sisimai::Lhost::EinsUndEins
to parse bounce emails in slightly different formats.text/html
, application/*
, and image/*
). Thanks to @gody01handle->close
in t/023-mail-stdin.t Thanks to CPAN Testers:
Sisimai/Reason
Blocked
ContentError
Filtered
NetworkError
NotAccept
PolicyViolation
Rejected
SpamDetected
TooManyConn
UserUnknown
diagnosticcode
has enough error message for detecting a bounce reason, expired
will change to proper reasonSisimai::Lhost::GoogleGroups
module to parse well a bounce mail even if an email address of X-Failed-Recipients:
header does not include a domain @googlegroups.com
#470Sisimai::Rhost::NTTDOCOMO
to parse more strictly a bounce mail returned from mfsmax.docomo.ne.jp
Sisimai::Rhost::Mimecast
Sisimai::LRhost::GoogleApps
, Import #479Sisimai::String->to_plain
method #484$YAML::Syck::*
,
$YAML::*
. at Sisimai::Data::YAML
module. Thanks to @bschmalhoferSisimai::Rhost::FrancePTT
module,
a new sample email rhost-franceptt-12.eml
into set-of-emails/
directory.
Thanks to @vhenonrfc3464-41.eml
and rfc3464-42.eml
deliverystatus
and replycode
detected from the message body
did not use at Sisimai::Lhost::Exim
.true()
method strictly checks the value of smtpcommand
at some classes
in Sisimai::Reason
. For example, when a detected reason is spamdetected
and virusdetected
the value of smtpcommand
should be DATA
or an SMTP
command to be sent after DATA
.Sisimai::Rhost::FrancePTT
module, a new sample email rhost-franceptt-12.eml
into set-of-emails/
directory. Thanks to @vhenon