Rb Sisimai Versions Save

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.

v5.0.2

2 months ago
  • release: "Wed, 13 Mar 2024 13:00:00 +0900 (JST)"
  • version: "5.0.2"
  • changes:
    • #271 #267 Sisimai 5 works on JRuby again. Thanks to @hiroyuki-sato
      • #159 Implement workarounds at Sisimai::Fact and some public tests with DateTime class to run Sisimai on JRuby, to avoid failing strptime()
      • #269 Replace Array#append with Array#push at Sisimai::RFC5322 because Array#append is only available in Ruby 2.5 and above
    • We have started testing JRuby 9.2 and 9.4 on GitHub Actions
    • Disable 2 tests in test/public/mail-test.rb that fails on GitHub Actions only
    • 5.7.23 returned from Office365 is an error related to SPF vilation (authfailure)
    • #272 Fixed an issue that Sisimai could not get the value of alias address correctly when an email forwarded and bounced
    • Sisimai::RFC5322.received now returns a list including all the elements except date time and (comments) found in the Received header
    • Update the error message patterns in Sisimai::Rhost::Mimecast
    • Update the error message patterns in the followings:
      • AuthFailure
      • Blocked
      • Expired
      • MailboxFull
      • SecurityError
      • SpamDetected
      • Suspend

v5.0.1

2 months ago

v5.0.0

3 months ago
  • release: ""Fri, 2 Feb 2024 23:22:22 +0900 (JST)
  • version: "5.0.0"
  • changes:
    • INCOMPATIBLE CHANGES SINCE SISIMAI VERSION 4
      • Sisimai requires Ruby 2.4 or later
      • Sisimai.make marked as obsoleted and will be removed at Sisimai v5.1.0, use Sisimai.rise instead
      • Sisimai doesn't return the result which reason is vacation by default. Use vacation: true option at Sisimai.rise() method to get the parsed results for vacation reason. #220, #222
      • Sisimai::Data and Sisimai::Fact
        • #208 Sisimai::Data has been renamed to Sisimai::Fact
        • #197 Sisimai::Data.softboucne marked as obsoleted and will be removed at v5.1.0, use Sisimai::Fact.hardbounce instead
      • #198 Sisimai::Message
        • Sisimai::Message no longer creates an object
        • Sisimai::Message.make renamed to Sisimai::Message.rise
      • Callback feature #191
        • Parameter :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.
        • Parameter :c___ is a parameter of Sisimai.rise and Sisimai.dump, is an array refer- ence and have two elements:
        • The first element of :c___ is the same with :hook parameter, is for a callback method email headers and entire message body
        • The second element of c___ 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.
        • Implement the following error reasons:
          • AuthFailure is a bounce reason which rejected due to SPF, DKIM, or DMARC failure #236
          • BadReputation is a bounce reason which rejected due to an IP address reputation #240
          • NotCompliantRFC is a bounce reason which rejected due to non-compliance with RFC
          • RequirePTR is a bounce reason which rejected due to missing PTR or having invalid PTR
          • Speeding is a bounce reason which rejected due to exceeding a rate limit or sending too fast #239
    • Implement Sisimai::RFC2045: Born again Sisimai::MIME for compatibility with the Go language version of Sisimai #199
    • Sisimai uses minitest as a test framework, RSpec has been removed
    • #217 Sisimai::Message.rise() parses twice when the entire message body of a bounced mail is multi parted begins with "message/rfc822".
    • #218 Add error messages in some European languages into Office365 and Domino
    • #228 Implement Sisimai::SMTP::Transcript for parsing a transcript of session log
    • #254, #255 Reduce 78% of regular expressions
      • Implement the following methods:
        • Sisimai::SMTP::Command.test
        • Sisimai::SMTP::Reply.test
        • Sisimai::SMTP::Status.test
        • Sisimai::SMTP::Status.prefer
        • Sisimai::String.aligned
        • Sisimai::String.ipv4
    • Rename the following classes in Sisimai::Rhost:
      • Sisimai::Rhost::Microsoft (ExchangeOnline)
      • Sisimai::Rhost::Google (GoogleApps)
      • Sisimai::Rhost::Tencent (TencentQQ)
    • Add a sample email bounced from Rakuten Mobile: sisimai/set-of-emails#20
      • lhost-postfix-76.eml (userunknown)
    • Add sample emails bounced from Amazon SES
      • lhost-postfix-77.eml (norelaying)
      • lhost-postfix-78.eml (contenterror)
    • Happy Birthday to Suzu a.k.a. "Neko-dono" Michitsuna 🐈

v4.25.16p1

3 months ago
  • release: ""Thu, 1 Feb 2024 12:25:22 +0900 (JST)
  • version: "4.25.16p1"
  • changes:
    • #256 Tiny code improvement on Sisimai::Lhost::EinsUndEins to parse bounce emails in slightly different formats.

v4.25.16

1 year ago
  • release: "Tue, 16 May 2023 15:11:22 +0900 (JST)"
  • version: "4.25.16"
  • changes:
    • Fix Sisimai::MIME.mimedecode() method when the encoding name is lower case "b" (not "B") like =?utf-8?b?... #251 Thanks to @revsystem
    • #253 Fix code in Sisimai::Data.make() method to handle nil returned from Sisimai::Rhost.get() method. Thanks to @axfcampos
    • Tiny code improvement: import code from sisimai/p5-sisimai#493 (message.rb)
    • Tiny code improvement: import code from sisimai/p5-sisimai#494 (rfc3834.rb)

v4.25.15p2

1 year ago
  • #253 Fix code in Sisimai::Data.make() method to handle nil returned from Sisimai::Rhost.get() method. Thanks to @axfcampos

v4.25.15p1

1 year ago
  • changes:
    • Fix Sisimai::MIME.mimedecode() method when the encoding name is lower case "b" (not "B") like =?utf-8?b?... #251 Thanks to @revsystem

v4.25.15

1 year ago
  • release: "Thu, 22 Dec 2022 13:13:13 +0900 (JST)"
  • version: "4.25.15"
  • changes:
    • Prevent ReDOS: Regex Denial of Service in Sisimai::String.to_plain #244. Thanks to @gmcabrita
    • Fix an error reason "5.2.1 exceedlimit" of an error message: "450-4.2.1 The user you are trying to contact is receiving mail at a rate that prevents additional messages from being delivered" to "toomanyconn" at Rhost::GoogleApp class, imported from sisimai/p5-sisimai#465.
    • Bug fix: getting a "name" part of an email address at Sisimai::Address.find
    • Add many error message patterns at the following classes in Sisimai/Reason
      • Blocked
      • ContentError
      • Filtered
      • NetworkError
      • NotAccept
      • PolicyViolation
      • Rejected
      • SpamDetected
      • TooManyConn
      • UserUnknown
    • When the value of diagnosticcode has enough error message for detecting a bounce reason, expired will change to networkerror
    • Update code in 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 #234
    • Import #235 from Sisimai v5, Implement Sisimai::Rhost::NTTDOCOMO to parse more strictly a bounce mail returned from mfsmax.docomo.ne.jp
    • Import #241 from Sisimai v5, Implement Sisimai::Rhost::Mimecast
    • Add the following error messages at `Sisimai::Rhost::ExchangeOnline:
      • 451 4.7.650 The mail server [...] has been temporarily rate limited due to IP reputation ... (S775)
      • 550 5.7.1 ... Please contact your Internet service provider since part of their network is on our block list (S3150)
      • Error messages of Exchange Server 2019 #242
    • Add many error messages at Sisimai::Rhost::GoogleApps, Import #243

v4.25.14

1 year ago
  • release: "Mon, 15 Aug 2022 14:22:22 +0900 (JST)"
  • version: "4.25.14"
  • changes:
    • Nothing changed, follow the Perl version of Sisimai 4.25.14.

v4.25.13

1 year ago
  • release: "Mon, 1 Aug 2022 16:05:55 +0900 (JST)"
  • version: "4.25.13"
  • changes:
    • Nothing changed, follow the Perl version of Sisimai 4.25.13.