Release Notes

Sisimai 5.5.0


2025/12/05

Sisimai 5.5.0 has been released. The main changes in this version include: Removed accessors deprecated at v5.2.0, the Ruby version of Sisimai requires Ruby 2.5.0 or later, update/add many error message patterns, and tiny code improvements.

Changes in the Perl version of Sisimai are indicated by Perl at the beginning of each item, changes in the Ruby version of Sisimai are indicated by Ruby, and changes in the Go version of Sisimai are indicated by Go.

And then, Sisimai 5 includes many changes that are not compatible with Version 4, so please check the Perl or Ruby version of your environment before installing or upgrading.

Incompatible Changes

  • Perl Ruby Remove the following accessors and JSON keys of Sisimai::Fact deprecated at v5.2.0. #548 #325
    • smtpagent (use decodedby instead after v5.5.0)
    • smtpcommand (use command instead after v5.5.0)
  • Ruby Sisimai 5.5.0 requires Ruby 2.5.0 or later. #375

Bug fixes

  • Ruby Fix the encoding problem (ASCII-8BIT, UTF-8) Encoding::CompatibilityError in concatinating MIME decoded strings.
    Thanks to @timoschilling #361 #362
  • Go Perl Ruby Fix the index out of range bug in multipart blocks while decoding MIME parts. Thanks to @timoschilling #203 #606 #368
  • Go Perl Ruby Fix typos in bounce reason names and values of Action: field. #247 #248 #250 #251 #255 #618 #620 #621 #623 #624 #384 #385 #386
  • Go Perl Ruby Fixed bugs in IsEmailAddress() function/method. #263 #626 #389
  • Go Fixed wrong groupindex value in Find() function of address/ package. #265
  • Go Fixed the issue where auto-reply messages were not decoded by Rise() function when the Vacation option was specified. #242

Tiny Improvements

  • Perl Ruby Fix the file encoding of the following modules from Shift-JIS to UTF-8. There is no bug caused by the file encoding. #599 #358
    • Sisimai.pm
    • Sisimai/RFC1123.pm
    • Sisimai/String.pm
    • Sisimai/Lhost/Exchange2007.pm
    • sisimai/lhost/exchange2007.rb
  • Go Perl Ruby Define some SMTP reply codes that uniquely identify a bounce reason. #173 #601 #360
  • Go Perl Ruby Implement IsAmbiguous() function/method at Sisimai::SMTP::Status class. #174 #604 #365
  • Go Perl Ruby Sisimai partially supports the media types described in RFC6533 such as Content-Type: message/global #185 #602
  • Go Remove redundant header normalization code blocks in rfc2045 package. #189
  • Go Perl Ruby Implement Sisimai::Lhost::Mimecast for decoding bounce mails returned from Mimecast. #201 #605
  • Go Perl Ruby Detect Suspend reason from an auto-replied message described in RFC3834. #202 #619 #383
  • Go Perl Ruby Update the following decoder modules in Sisimai::Lhost.
    • InterScanMSS has been renamed to TrendMicro. #211 #611
    • MailMarshalSMTP has been renamed to MailMarshal. #234 #617 #382
    • Code improvements in mFILTER. #209
    • Code improvements in X1. #210
    • Code improvements in X2. #219
  • Go Perl Ruby Add a new error message pattern rejected by Spamhaus into Blocked.
    Thanks to @vhenon #229 #615
  • Go Internal package sis has been renamed to siba: Sisimai Internal Bounce Abstraction. #230
  • Ruby Many unless expression have been changed to if expression. #370
  • Go Use constants to define SMTP commands and bounce reason names, and values of Action: field. #244 #245 #257
  • Go Perl Ruby Message-ID: related bounces are classified as NotCompliantRFC. #249 #622
  • Go Code, test, and coverages improved. #261 #262 #264 #273
  • Go Perl Ruby Check that the input file or MIME decoded part is a binary or not. #28 #279 #627 #390
  • Go Perl Ruby Update SMTP error codes and messages in the following Sisimai::Rhost classes. #283 #285 #288 #291 #628 #631 #391 #394
  • Go Perl Ruby Some error message patterns in PolicyViolation have been moved to Rejected. #295
  • Go Sisimai can be built with Go 1.25.4. #293
  • Ruby Sisimai works on Ruby 3.3.10 and 3.4.7. #396
  • Go Perl Ruby EXPERIMENTAL IMPLEMENTATION: Add a new field toxic in the decoded results. #299 #633 #397