Mail Analyzing Interface for email bounce: A Ruby library to parse RFC5322 bounce mails and generating structured data as JSON from parsed results. Ruby version of Sisimai: an error mail analyzer.
Sisimai::Fact
and some public tests with DateTime
class to run Sisimai on JRuby, to avoid failing strptime()
Array#append
with Array#push
at Sisimai::RFC5322
because Array#append
is only available in Ruby 2.5 and abovetest/public/mail-test.rb
that fails on GitHub Actions only5.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
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
.Sisimai.make
marked as obsoleted and will be removed at Sisimai v5.1.0, use Sisimai.rise
insteadvacation
by default. Use vacation: true
option at Sisimai.rise()
method to get the parsed results for vacation
reason. #220, #222Sisimai::Data
and Sisimai::Fact
Sisimai::Data
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 creates an objectSisimai::Message.make
renamed to Sisimai::Message.rise
:hook
for the callback feature has been removed from Sisimai.rise()
and
Sisimai.dump()
methods. Use the first element of :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 with :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 #236BadReputation
is a bounce reason which rejected due to an IP address reputation #240NotCompliantRFC
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 #239Sisimai::RFC2045
: Born again Sisimai::MIME
for compatibility with the Go language
version of Sisimai #199minitest
as a test framework, RSpec has been removedSisimai::Message.rise()
parses twice when the entire message body of a bounced mail is
multi parted begins with "message/rfc822".Sisimai::SMTP::Transcript
for parsing a transcript of session logSisimai::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.Sisimai::MIME.mimedecode()
method when the encoding name is lower case "b" (not "B") like =?utf-8?b?...
#251 Thanks to @revsystemSisimai::Data.make()
method to handle nil
returned from Sisimai::Rhost.get()
method. Thanks to @axfcamposSisimai::Data.make()
method to handle nil
returned from Sisimai::Rhost.get()
method. Thanks to @axfcamposSisimai::MIME.mimedecode()
method when the encoding name is lower case "b" (not "B") like =?utf-8?b?...
#251 Thanks to @revsystemSisimai::String.to_plain
#244. Thanks to @gmcabritaSisimai/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 networkerror
Sisimai::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
#234Sisimai::Rhost::NTTDOCOMO
to parse more strictly a bounce mail returned from mfsmax.docomo.ne.jp
Sisimai::Rhost::Mimecast
Sisimai::Rhost::GoogleApps
, Import #243