Revision history for Sisimai/formerly known as bounceHammer version 4

4.1.29  Tue,  6 Oct 2015 10:24:38 +0900 (JST)
    - Issue #83, New MTA module implemented as "Sisimai::MSP::US::ReceivingSES".
      This module parse bounce mails from Amazon SES(Receiving).
    - Improved code for getting and setting the value of Status: field.
    - Improved document in Sisimai::Data and Sisimai::Reason, imported from web
      site: http://libsisimai.org/ .
    - Added new sample email rfc3834-03.eml to test code for Sisimai::RFC3834.
    - Added new sample emails: sendmail-26,27,28,29,30,31,32.eml. 

4.1.28  Sun, 16 Aug 2015 14:50:20 +0900 (JST)
    - Happy 1st Birthday To Sisimai !!
    - Experimental implementation about issue #76: New module Sisimai::RF3834
      is for detecting auto replied message and decides a reason as "vacation".
    - Fixed bug in Sisimai::Message for setting the order of MTA, MSP modules.
    - Issue #70, Implemented code for using user defined MTA module and added
      Sisimai::MTA::UserDefined as a sample.
    - Issue #78, Implement new accessor "softbounce" in Sisimai::Data object.

4.1.27  Fri, 17 Jul 2015 11:45:05 +0900 (JST)
    - New method implemented: Sisimai->dump('/path/to/mbox') return parsed data
      as JSON string.
    - Updated error message patterns: Sisimai::Reason::NoRelaying, TooManyConn,
      and Blocked.
    - Fixed code in Sisimai::Reason::MesgTooBig. Error reason of bounce message
      that the value of "Status" field is 5.2.3 will be set as "exceedlimit".
    - Fixed code for getting the value of Message-Id header in the original 
      message at Sisimai::Data.
    - Sisimai reports the bounce reason as "onhold" when Sisimail::Reason->get
      method did not decide the reason and the value of "diagnosticcode" is not
      empty.
    - Issue #74 is that reported at CPAN Testers Report might be fixed.
    - Issue #75, Improved code for parsing 2-digit year value in a Date: header
      at Sisimai::DateTime.
    - Test codes for Sisimai::MTA, Sisimai::MSP, Sisimai::ARF, Sisimai::RFC3464
      have been integrated and improved.

4.1.26  Sat,  4 Jul 2015 11:34:44 +0900 (JST)
    - Module name changed from Sisimai::Reason::RelayingDenied to "NoRelaying".
    - Registered new error reason "TooManyConn". This reason is bounced due to 
      that too many connections or exceeded connection rate limit.
    - Included many error messages listed in SendGrid "Deliverability Center":
      "https://sendgrid.com/deliverabilitycenter/" as a regular expression at 
      Sisimai::Reason::*. Thanks to Bogdan B. and SendGrid.
    - Experimental implementation: Sisimai::Reason->match() is for detecting a
      bounce reason from given text as an error message.
    - Experimental impelmentation about issue #61: New MTA module implemented
      as "Sisimai::MTA::ApacheJames". The module is for parsing bounce emails 
      which are generated by Apache James/Java Apache Mail Enterprise Server.
      Thanks to John Aldrich Quan.
    - Issue #72, Support SMTP reply code in Sisimai::Data object.
    - Fixed code: Add 'SystemFull' reason into Sisimai::Reason->anotherone().
    - Improved regular expression in Sisimai::MSP::US::Google.

4.1.25  Mon, 22 Jun 2015 11:45:29 +0900 (JST)
    - Reason name has been changed from "NoSpam" to "SpamDetected".
    - Package name has been changed from Sisimai::Time to Sisimai::DateTime.
    - Implemnet Sisimai::Time again as a child class of Time::Piece.
    - The class of "timestamp" is now Sisimai::Time in Sisimai::Data object.
    - Implement Sisimai::Reason::HasMoved.
    - 2 emails bounced due to "expired" reason have been added as a sample for
      issue #50.
    - Fix bug in Sisimai::MTA::MailMarshalSMTP for a bounce mail which have no
      boundary strings.
    - Fix bug in Sisimai::MTA::Exim for setting an error reason decided by SMTP
      MAIL command.
    - Improved regular expression in Sisimai::RFC3464.
    - Update Sisimai::MDA, add an error message pattern defined in dovecot 1.2,
      dovecot/src/plugins/quota/quota.c.
    - Update message patterns at SpamDetected, SystemError, Blocked, Filtered,
      RelayingDenied, NetworkError, MesgTooBig, MailboxFull, SecurityError, 
      UserUnknown and Suspend.
    - Fix code for detecting MIME encoded string in Sisimai::MIME.
    - Implement TO_JSON method in Sisimai::Address for JSON module.
    - Add test code for sample emails in CRLF.
    - Add sample emails which is an IDN email.
    - Add sample emails which could not be parsed yet into eg/cannot-parse-yet/
      directory and implement test code.
    - Add sample emails which reason is "undefined" into eg/reason-is-undefined
      directory and implement test code.

4.1.24  Mon, 11 Jun 2015 22:20:59 +0900 (JST)
    - Improved fallback code in Sisimai::RFC3464.
    - Add message patterns at NoSpam and HostUnknown in Sisimai/Reason.

4.1.23  Thu, 11 Jun 2015 13:20:59 +0900 (JST)
    - Sisimai works on Perl 5.22.0.
    - New MTA module Sisimai::MTA::X4 for qmail clone MTAs.
    - Performance tuning, Sisimai is now 1.39 times faster than before.
    - Improved code in Sisimai/Message.pm: 1.62 times faster than before.
    - Bug fix in Sisimai::MSP::JP::EZweb and Sisimai::MSP::JP::KDDI.
    - Support "2015-04-29 01:23:45" date format in Sisimai::Time.
    - Support the value of Diagnostic-Code without the value of diagnostic-type
      field in Sisimai::RFC3464.
    - Emails in https://github.com/sendgrid/go-gmime/tree/master/gmime/fixtures
      and some emails have been added as a sample in eg/ directory.
    - Add message patterns at NoSpam, MailboxFull, RelayingDenied, UserUnknown, 
      Blocked, Filtered, SecurityError, Expired, HostUnknown, and NetworkError
      in Sisimai/Reason.
    - Fix bug in Sisimai::Data for calling Sisimai::Time->parse() method.
    - Sisimai::MTA::IMailServer and Sisimai::MTA::InterScanMSS updated.
    - Implement fallback code in Sisimai::RFC3464: parse entire message body to
      get a recipient address and error messages. The value of the "smtpagent"
      parsed by this code is "RFC3464::Fallback".

4.1.22  Thu, 28 May 2015 14:20:59 +0900 (JST)
    - Merged pull request #59 (Support for Microsoft custom ARF format) at 
      https://github.com/azumakuniyuki/p5-Sisimai/pull/59 . Thanks to jleroy.
    - Add Time::Piece and Module::Load to ./cpanfile. Thanks to kkdYodoKazahaya
      at issue #60.
    - Update Sisimai::ARF for parsing Amazon SES Complaints bounces.

4.1.21  Tue, 21 Apr 2015 14:20:59 +0900 (JST)
    - Update regular expressions of error message pattern at Sisimai::Reason::
      NoSpam, Suspend, Blocked, UserUnknown, Expired, NetworkError, MailboxFull
      and MesgTooBig.
    - Fix bug for setting the value of SMTP command at Sisimai::Data.
    - Update regular expression of "expired" in Sisimai::MTA::Exim.
    - Add three sample emails for "make test" in eg/ directory.

4.1.20  Thu,  9 Apr 2015 14:20:59 +0900 (JST)
    - Update regular expressions of error message pattern at SystemError.pm, 
      MesgTooBig.pm and NoSpam.pm in Sisimai/Reason.
    - Add two sample emails for "make test" in eg/ directory.

4.1.19  Mon,  6 Apr 2015 14:20:59 +0900 (JST)
    - Update regular expressions of error message pattern at Rejected.pm, 
      Mailboxfull.pm, MesgTooBig.pm, and UserUnknown.pm in Sisimai/Reason.
    - New error reason "nospam" implemented.
    - Some message patterns have moved from Sisimai::Reason::SecurityError to
      Sisimai::Reason::NoSpam module.

4.1.18  Fri, 27 Mar 2015 12:59:07 +0900 (JST)
    - Repository name on github has been changed to p5-Sisimai.
    - Fixed code around regular expressions of "mailboxfull", "expired" in MTA
      modules: Sisimai::MTA::qmail and Sisimai::MTA::Exim.
      Thanks to m-walk at issue #57.
    - Update regular expressions of error message pattern at SecurityError.pm
      and Blocked.pm in Sisimai/Reason.

4.1.17  Mon,  2 Mar 2015 16:01:20 +0900 (JST)
    - Improved regular expressions of networkerror, expired and related code in
      Sisimai::MTA::qmail. Thanks to m-walk at issue #56.

4.1.16  Wed, 18 Feb 2015 16:01:20 +0900 (JST)
    - Add bounce emails as a sample from Postfix 3.0.0.
    - Improved code for reading mail data from STDIN at Sisimai::Mail.
    - Try to load YAML::Syck module instead of YAML module when string "yaml"
      is specified in the argument of Sisimai::Data->dump() method.

4.1.15  Wed, 11 Feb 2015 13:59:59 +0900 (JST)
    - Improved code for detecting abuse message "opt-out" in Sisimai::ARF.
    - Minor improvements in Sisimai::MTA::Postfix.

4.1.14  Fri,  6 Feb 2015 13:29:59 +0900 (JST)
    - Update Sisimai::MSP::US::Outlook for delayed message.
    - Changed accessor name "data" to "path" in Sisimai::Mail module.
    - Implement new module: Sisimai::Mail::STDIN for reading email data from
      standard-in.
    - Changed accessor names in Sisimai::Mail::Mbox and Sisimai::Mail::Maildir.
      "name" to "file", "files" to "inodes".
    - Accessor "path" always return the path to a mailbox or path to each mail
      file in Maildir/ at Sisimai::Mail::Mbox and Sisimai::Mail::Maildir.
    - Implement new accessor "dir", it returns the path to directory of given
      argument in Sisimai::Mail::Mbox and Sisimai::Mail::Maildir.

4.1.13  Tue, 27 Jan 2015 15:00:55 +0900 (JST)
    - Fixed bug in test code for Sisimai::DATA::YAML. Thanks to CPAN Testers
      Reports.
    - Implement new method Sisimai::Reason->index(), returns the list of bounce
      reasons.

4.1.12  Sat, 24 Jan 2015 15:00:59 +0900 (JST)
    - Update sample code in POD at Sisimai::RFC5322 and test codes (RT#101436,
      Issue #41, See https://rt.cpan.org/Ticket/Display.html?id=101436). Thanks
      to Mark Stosberg.
    - Changed accessor name: "data" => "path" in Sisimai::Mail.
    - Space character will be inserted after ":" in Sisimai::Data::JSON.
    - Improved regular expression for getting the value of email header at each
      MTA module.
    - Message patterns related to DNS or network error have been moved to new
      module: Sisimai::Reason::NetworkError.
    - New error reason "networkerror": the value of reason for bounce messages
      returned due to network related errors will be set as the reason.
    - Sisimai does not rely on Try::Tiny module from this version.

4.1.11  Thu, 15 Jan 2015 15:01:59 +0900 (JST)
    - Improved code in Sisimai/Mail/Mbox.pm: using substr() function instead of
      a regular expression is 1.46 times faster than before.
    - Code improvement in Sisimai/Reason.pm: using grep {} block instead of a 
      regular expression is 133% faster than before.
    - Revert commit 0c7782cecafdc923d3c82b81a201a787611654ea for Sisimai::Time.
    - Improvement of pattern match in Sisimai/Message.pm is 2.27 times faster.
    - Improvement of regular expressions in each MTA module is 115% faster than
      before.

4.1.10  Mon, 12 Jan 2015 17:59:35 +0900 (JST)
    - Implement Sisimai::MSP::UK::MessageLabs for email bounces from Symantec.
      cloud: formerly MessageLabs.
    - Added 2 sample emails: arf05.eml, arf-06.eml and improved Sisimai::ARF
      from pull request #37, Thanks to @jcbf.
    - Merged pull request #38, Updated Sisimai::US::Facebook and DMARC forensic
      related codes, and error message patterns in Sisimai::Reason::* modules.
      Thanks to @jcbf.
    - Implement Sisimai::MSP::US::Bigfoot for email bounces from bigfoot.com.
    - Merged pull request #39, Updated Sisimai::RFC3464 and message patterns in
      Sisimai::Reason::SecurityError and Suspended. Thanks to @jcbf.
    - Regular expression improvements in each MTA module(Issue #40) is between
      122% and 800% faster than Sisimai 4.1.9.

4.1.9   Wed, 31 Dec 2014 18:59:22 +0900 (JST)
    - Implement Sisimai::MTA::X3 for email bounces from Unknown MTA(3).
    - Improved code for getting error message in a bounce mail from MXLogic.
    - Added 4 sample emails from pull request #32, Thanks to @jcbf.
    - Implement Sisimai::MSP::DE::EinsUndEins for email bounces from 1&1.
    - Added 4 sample emails and updated error message patterns in some files in
      Sisimai/Reason directory from pull request #34, Thanks to @jcbf.
    - Implement Sisimai::MTA::MailMarshalSMTP for email bounces from Trustwave
      Secure Email Gateway: formerly MailMarshal SMTP.
    - Improved code for getting FBL related values in Sisimai::ARF.

4.1.8   Fri, 19 Dec 2014 17:22:59 +0900 (JST)
    - Support new data format: YAML(optional, "YAML" module required).

4.1.7   Thu, 18 Dec 2014 23:59:59 +0900 (JST)
    - Tiny code improvement of Sismai::MSP::RU::Yandex.
    - Implement Sisimai::MSP::US::Zoho for email bounces from Zoho Mail.
    - Improved code for detecting email bounce from MXLogic.
    - Implement Sisimai::MTA::X2 for email bounces from Unknown MTA(2).
    - Add some message patterns into Sisimai::Reason::Expired.
    - Improved code for getting error message in a bounce mail from Zoho Mail.

4.1.6   Sun,  7 Dec 2014 22:44:36 +0900 (JST)
    - Improved code for parsing email bounce from @nokiamail.com.
    - Implement Sisimai::MSP::RU::Yandex for email bounces from Yandex.Mail.

4.1.5   Fri,  5 Dec 2014 18:20:22 +0900 (JST)
    - Fix newline of some sample emalis in eg/ directory.

4.1.4   Thu,  4 Dec 2014 20:40:22 +0900 (JST)
    - Implement Sisimai::MSP::RU::MailRu for email bounces from @mail.ru.
    - Implement Sisimai::MSP::DE::GMX for email bounces from GMX.
    - Improved code for checking bounce mail in Sisimai::MTA::OpenSMTPD.

4.1.3   Sun, 23 Nov 2014 21:22:55 +0900 (JST)
    - Improved code for detecting error reason in Sisimai::Reason.
    - Implement Sisimai::MTA::MessagingServer for email bounces from Oracle
      Communications Messaging Server and Sun Java System Messaging Server.
    - Implement Sisimai::MTA::X1 for email bounces from Unknown MTA(1).
    - Implement Sisimai::MSP::US::Yahoo for email bounces from Yahoo! MAIL.
    - Implement Sisimai::MSP::US::Aol for email bounces from Aol Mail.
    - Implement Sisimai::MSP::US::Outlook for email bounces from Outlook.com.

4.1.2   Sat, 22 Nov 2014 22:22:22 +0900 (JST)
    - Require Time::Local 1.19 or later for fixing issue #21, #23, and #24.
    - Key name of time stamp has been changed from "date" to "timestamp".
    - Data sources and hash algorithm of token string in parsed data have been 
      changed.
    - Implement Sisimai::MTA::InterScanMSS for email bounces from Trend Micro
      InterScan Messaging Security Suite.
    - Implement Sisimai::MTA::SurfControl for email bounces from WebSense Surf-
      Control.
    - Implement Sisimai::MTA::V5sendmail for email bounces from old version of
      Sendmail(v5) and other MTAs based on V5 Sendmail.
    - Fixed bounce reason names in Sisimai::RFC3463.

4.1.1   Mon, 10 Nov 2014 15:59:03 +0900 (JST)
    - Fix tiny bug in Sisimai::MTA::Exim.
    - Add many sample emails into eg/ directory.
    - Improved code for detecting connection errors at Sendmail and Courier.
    - Sisimai::RFC3464 and Sisimai::MTA::Exchange imporved.
    - Implement Sisimai::MTA::Notes for email bounces from Lotus Notes.
    - Implement Sisimai::MTA::McAfee and Sisimai::MTA::MXLogic for email bounce
      from McAfee Products.
    - Implement Sisimai::MTA::MailFoundry for email bounces from MailFoundry.
    - Implement Sisimai::MTA::IMailServer for email bounces from IPSWITCHI 
      IMail Server.
    - Improved code for deciding error reason at Sendmail and qmail.
    - Implement Sisimai::MTA::mFILTER for email bounces from DigitalArts 
      m-FILTER.
    - Implement Sisimai::MTA::Activehunter for email bounces from TransWARE
      Active!hunter.

4.1.0   Sat,  4 Oct 2014 15:09:09 +0900 (JST)
    - Sisimai::Group: child classes, "provider", and "category" in the parsed
      data have been removed permanently.
    - Fix the newline in sample email files for `make test`.

4.0.2   Wed, 10 Sep 2014 22:45:43 +0900 (JST)
    - Implement Sisimai::MSP::US::AmazonSES, Sisimai::MSP::US::SendGrid modules
      for parsing bounce mail from email cloud services.
    - Implement Sisimai::MTA::Domino module for email bounces from IBM Domino.
    - Large scale code refactoring at Sisimai::RFC3464.

4.0.1   Sun, 17 Aug 2014 23:00:00 +0900 (JST)
    - Fixed bug for reading each email file in the Maildir given as an argument
      of Sisimai::Mail::Maildir->read method.
    - Refactoring around codes to return the parsed data.
    - Implement "make" method to get bounce data at Sisimai.pm.

4.0.0   Sat, 16 Aug 2014 20:00:00 +0900 (JST)
    - The first release of Sisimai.

