Release Notes

Sisimai 5.2.0


2025/02/25

Sisimai 5.2.0 has been released. The main changes in this version include: renaming the field names of decoded data (smtpagent and smtpcommand) , adding new field name of decoded data (feedbackid), adding two new bounce reasons (FailedSTARTTLS and Suppressed), and changes to other internal APIs to maintain compatibility with the Go version of Sisimai.

Changes specific to the Perl version of Sisimai are indicated by Perl at the beginning of each item, changes specific to the Ruby version of Sisimai are indicated by Ruby, and changes specific to 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.

Changes

  • Go The Go version of Sisimai is available in v5.2.0. It can be built with Go 1.17 or later.
  • BREAKING CHANGES were made to maintain compatibility with the Go version of Sisimai. #547 #558 #567 #311 #318 #327
    • The "smtpcommand"field of the Sisimai::Fact instance that holds the decoded result has been changed to "command". The item name output in JSON has also been changed to "command", but it can still be referenced by "smtpcommand" in JSON and the smtpcommand() method until it is removed in Sisimai 5.5.0. #548 #323 #8
    • The "smtpagent"field of the Sisimai::Fact instance that holds the decoded result has been changed to "decodedby". The item name output in JSON has also been changed to "decodedby", but it can still be referenced by "smtpagent" in JSON and the smtpagent() method until it is removed in Sisimai 5.5.0. #548 #323 #8
  • BREAKING CHANGES were made to the internal API to maintain compatibility with the Go version of Sisimai
    • The load() method of the Sisimai::Message class has been deprecated. It will be completely removed in v5.3.0. #537 #538 #302 #303
    • The default() method of the Sisimai::Order class, which was not used anywhere, has been removed. #539 #304
    • A "feedbackid" field has been added to the Sisimai::Fact instance that holds the decoded result. It extracts and stores the value of the Feedback-ID: header from the original email. #568 #328 #36
    • Two new bounce reasons have been added to reflect the current state of email delivery. These are Failed STARTTLS, for delivery failures due to STARTTLS-related errors, and Suppressed, for delivery failures due to a match with the delivery service's suppression list. Suppressedใงใ™ใ€‚ #562 #322 #35 #18
    • The Sisimai::SMTP::Error class has been renamed to Sisimai::SMTP::Failure. At the same time, the is_temporary(), is_hardbounce(), and is_softbounce() methods were implemented, and the soft_or_hard() method was removed. #542 #309
    • The get() method of the Sisimai::Rhost class has been renamed to find()
    • A name() method has been implemented in the Sisimai::Rhost class
    • The hardbounce attribute has been removed from Sisimai::Lhost class. This is because this item should be set in subsequent processing and is not necessary in the initial stage of the decodeing process. #555 #313
    • A Sisimai::RFC3464::ThirdParty class has been implemented
    • The following MTA modules have been removed from under Sisimai::Lhost. They have been integrated into Sisimai::RFC3464 for code maintainability. In addition, some modules have moved only their error code list and matching process to under Sisimai::Rhost. #551 #557 #315 #317 #7
    • The following MTA modules have been removed from under Sisimai::Lhost. They have been integrated into Sisimai::Lhost::Exim for code maintainability.
      • MailRu
      • MXLogic
    • The following MTA modules have been removed from under Sisimai::Lhost. They have been integrated into Sisimai::Lhost::qmail for code maintainability.
      • X4
      • Yahoo
    • The MTA module Sisimai::Lhost::Office365have been removed from under Sisimai::Lhost. It have been integrated into Sisimai::Lhost::Exchange2007 for code maintainability. #553
    • Sisimai::Lhost::GSuite has been renamed to Sisimai::Lhost::GoogleWorkspace
    • Sisimai::Lhost::AmazonSES decodes only bounce emails containing JSON notifications from Amazon SNS. Bounce emails without JSON strings are parsed by Sisimai::RFC3464.
    • Sisimai::MDA has been renamed to Sisimai::LDA #32
    • The Sisimai::RFC791 class has been newly created to handle primarily IPv4 address-related processing. At the same time, the ipv4() method of the Sisimai::String class has been moved to the find() method of Sisimai::RFC791. #560 #319 #34
    • The is_validhostname() method of the Sisimai::RFC1123 class has been renamed to is_internethost(). In addition, the find() method has been implemented in the same class. #16
    • The find() method of the Sisimai::RFC1894 class can now extract comments, and the return value is an array containing five elements. #552 #312
  • Minor improvements and bug fixes for compatibility
    • Bug fixes in the tidy() method of the Sisimai::Message class #540 #305
    • Perl Significant code improvements and a bug fix for handling multi-line Diagnostic-Code: headers in the tidy() method of the Sisimai::Message class.
    • Reporting-MTA of the Sisimai::RFC1894 class indicates lhost
    • Perl A typo in X-Actual-Recipient has been corrected in the Sisimai::RFC1894 class.
    • Tiny code improvements in Sisimai::RFC5322 class
    • Code improvements and the following bug fixes in Sisimai::Lhost
      • Code improvements and bug fixes in Exim
      • Remove unnecessary conditional statements
      • Refactor the code for retrieving SMTP response codes and status codes
      • Implement sv-SE (Swedish language) patterns in Exchange2007
      • Significant code improvements in V5sendmail
    • Code improvements and bug fixes in Sisimai::Rhost class
      • Fix bugs in the code that processes the domain part of an email address as a remote hostname.
      • Add hosted tenant which has no mail-enabled subscriptionsspan and 4.7.652 has exceeded the maximum number of connections as new error message patterns in Microsoft
      • Bug fixes in Facebook
    • Tiny code improvements in Sisimai::ARF class
    • Resolved an issue in the Sisimai::SMTP::Reply class where the valid response code range was incorrect, updating the minimum to 221 and the maximum to 557.
    • Perl Resolved a problem in the Sisimai::Reason::VirusDetected class where HELO was being duplicated.
    • Add new error message patterns in the following subclasses of Sisimai::Reason class BadReputation Blocked Filtered MailboxFull MesgTooBig RequirePTR SpanDetected SystemError
    • Remove all the regular expressions from the following classes of Sisimai::Reason class Blocked MailerError SpamDetected #543 #308
    • Fix a typo in Sisimai::Rhost::YahooInc class. #546 #310 #11 Thanks to @bohwaz
    • Fixed a bug in the Sisimai::Rhost class where matching conditions were unstable (due to random key reordering in a hash), such as when bounce emails were sent from Microsoft to AOL.