The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version v4.25.6

  • release: "Wed, 22 Apr 2020 16:22:22 +0900 (JST)"
  • version: "4.25.6"
  • changes:
    • #367 Fix a little spelling errors. Thanks to @guimard
    • #368 Make `Sisimai::Message` 33% faster
      • Use the negative look-ahead regular expression code to convert all of the email header strings into key-value pairs as a HASH at newly implemented method `Sisiai::Message->makemap` #366. Thanks to @xtetsuji
      • Remove `Sisimai::Message->takeapart` (replaced with `makemap`)
      • Remove `Sisimai::Message->headers` (replaced with `makemap`)
      • Code improvement for `require` statement before method calls #371
    • Make `Sisimai::Order` 12% faster
      • Rewrite `Sisimai::Order->make`
      • Remove `Sisimai::Order->by`
      • Remove `Sisimai::Order->headers`
      • Remove `Sisimai::Lhost->headerlist`
      • And all `headerlist` method have been removed from `Sisimai::Lhost::*`, `Sisimai::RFC3834` and `Sisimai::ARF`
      • The MTA module to be loaded at first is decided by the first 2 words of each bounce mail subject, is defined at `$Subject` in `Sisimai::Order`
      • Some variables are replaced with `state`
    • Each `field` parameter has been removed from the following methods because Sisimai detect all the email header fields by `Sisimai::Message->makemap()` without having to specify field names at `field` parameter
      • `Sisimai->make`
      • `Sisimai::Message->new`
      • `Sisimai::Message->make`
    • Code improvement for `require` statement before calling `match()` method of some modules defined in `$PreMatches` at `Sisimai::Reason::UserUnknown`
    • #369 Remove the following unused methods:
      • `Sisimai::MIME->patterns`
      • `Sisimai::SMTP->command`
    • Some file global variables have been replaced with `state` #371
    • Performance improvement: 12% faster, reduced 6% of method calls
    • `Sisimai::Lhost::Google` has been renamed to `Sisimai::Lhost::Gmail` #377
    • Implement 3 MTA modules: #373 #376
      • `Sisimai::Lhost::Barracuda`
      • `Sisimai::Lhost::PowerMTA`
      • `Sisimai::Lhost::X6`
      • `Sisimai::Lhost::GoogleGroups`
    • "email-" prefix of each sample email in set-of-emails/maildir directory has been replaced with "lhost-" sisimai/set-of-emails#14
    • SMTP Agent improvement #362
      • Remove `Email::` prefix from the value of `smtpagent` at parsed results
      • Remove `Sisimai::Lhost->smtpagent` method
    • Improved the following MTA modules:
      • `Sisimai::Lhost::Amavis` #380
      • `Sisimai::Lhost::InterScanMSS`
      • `Sisimai::Lhost::Office365` improvement for reading MIME-encoded subject
      • `Sisimai::Lhost::Exchange2007` supports error messages in `it-CH`
    • Tiny bug fix for `Subject` header decoding
    • Fix bug in code for getting an `"addresser"` address from `From:` field in the original message part which are multiple lines at `Sisimai::ARF`. #385 Thanks to @jcbf
    • New accessor `origin` at `Sisimai::Data` and the parsed results for keeping a path to the source email #383
    • #384 `Sisimai::Mail` improvement for compatibilities with the Go language version of Sisimai which will be released this summer #389
      • Removed `Sisimai::Mail::STDIN->name` (not used)
      • Removed `Sisimai::Mail::Maildir->inodes` (not needed to check the inode)
      • Warning message is displayed when the following methods are called:
        • `Sisimai::Mail->close` (automatically closes at the EOF)
        • `Sisimai::Mail->type` (use `Sisimai::Mail->kind` instead)
        • `Sisimai::Mail->mail->*` (use `Sisimai::Mail->data->*` instead)
        • Methods above will be removed at v4.25.10
      • `Sisimai::Mail::Memory->data` renamed to `Sisimai::Mail::Memory->payload`
      • `Sisimai::Mail::Maildir->size` keeps the number of files in the Maildir/
      • `Sisimai::Mail::Maildir->offset` keeps the number of email files in the Maildir/ which have been read
      • Call `Sisimai::Mail::*->read` directly instead of `Sisimai::Mail->read`
    • Remove `Sisimai::Lhost::UserDefined` (not used)
    • #387 Add the following D.S.N. codes and error messages (not tested)
      • Thanks to @jcbf
      • `Mailbox does not exist!` at `Sisimai::Reason::UserUnknown` (Amazon SES)
      • `Not a valid recipienet` at `Sisimai::Reason::UserUnknown` (Yahoo!)
      • `Envelope blocked` at `Sisimai::Reason::Rejected` (Minecast.com)
      • `5.2.122` is toomanyconn, `5.4.11` is contenterror, `5.7.51` is blocked at `Sisimai::Rhost::ExchangeOnline`

Modules

Mail Analyzing Interface for bounce mails.
Parser class for detecting ARF: Abuse Feedback Reporting Format.
Email address object
Parsed data object
Dumps parsed data object as a JSON format
Dumps parsed data object as a YAML format
Date and time utilities
Base class for Sisimai::Lhost::*
bounce mail parser class for Active!hunter.
bounce mail parser class for amavisd-new.
bounce mail parser class for Amazon SES.
bounce mail parser class for Amazon WorkMail.
bounce mail parser class for Aol Mail.
bounce mail parser class for ApacheJames.
bounce mail parser class for Barracuda.
bounce mail parser class for Bigfoot.
bounce mail parser class for BIGLOBE.
bounce mail parser class for Courier MTA.
bounce mail parser class for IBM Domino Server.
bounce mail parser class for au EZweb.
bounce mail parser class for 1&1.
bounce mail parser class for Microsft Exchange Server 2003.
bounce mail parser class for Microsft Exchange Server 2007.
bounce mail parser class for Exim.
bounce mail parser class for FML (fml.org).
bounce mail parser class for Facebook.
bounce mail parser class for GMX and mail.com.
bounce mail parser class for G Suite.
bounce mail parser class for Gmail.
bounce mail parser class for Google Groups.
bounce mail parser class for IMail Server.
bounce mail parser class for Trend Micro InterScan Messaging Security Suite.
bounce mail parser class for au by KDDI.
bounce mail parser class for MX Logic.
bounce mail parser class for MailFoundry.
bounce mail parser class for Trustwave Secure Email Gateway.
bounce mail parser class for @mail.ru.
bounce mail parser class for McAfee Email Appliance.
bounce mail parser class for MessageLabs.
bounce mail parser class for Sun Java System Messaging Server and Oracle Communications Messaging Server.
bounce mail parser class for Lotus Notes Server.
bounce mail parser class for Microsoft Office 365.
bounce mail parser class for OpenSMTPD.
bounce mail parser class for Outlook.com.
bounce mail parser class for Postfix.
bounce mail parser class for PowerMTA.
bounce mail parser class for Amazon SES.
bounce mail parser class for SendGrid.
bounce mail parser class for v8 Sendmail.
bounce mail parser class for SurfControl.
bounce mail parser class for V5 Sendmail.
bounce mail parser class for Verizon Wireless.
bounce mail parser class for X1.
bounce mail parser class for X2.
bounce mail parser class for X3.
bounce mail parser class for Unknown MTA which is developed as a qmail clone.
bounce mail parser class for unknown MTA #5.
bounce mail parser class for X6.
bounce mail parser class for Yahoo! MAIL.
bounce mail parser class for Yandex.Mail.
bounce mail parser class for Zoho Mail.
bounce mail parser class for Digital Arts m-FILTER.
bounce mail parser class for qmail.
Error message parser for MDA
MIME Utilities
Handler of Mbox/Maildir for reading each mail.
Mailbox reader
Mailbox reader
Mailbox reader
Mailbox reader
Convert bounce email text to data structure.
A Class for making an optimized order list for calling MTA modules in Sisimai::Lhost::*.
DSN field defined in RFC3464 (obsoletes RFC1894)
bounce mail parser class for Fallback.
RFC3834 auto reply message detector
Email address related utilities
Detect the bounce reason
Bounce reason is "blocked" or not.
Bounce reason is contenterror or not.
Email delivered successfully
Bounce reason is exceedlimit or not.
Bounce reason is expired or not.
Email forwarded as a complaint message
Bounce reason is filtered or not.
Bounce reason is hasmoved or not.
Bounce reason is hostunknown or not.
Bounce reason is mailboxfull or not.
Bounce reason is mailererror or not.
Bounce reason is mesgtoobig or not.
Bounce reason is networkerror or not.
Bounce reason is norelaying or not.
Bounce reason is notaccept or not.
Bounce reason is onhold or not.
Bounce reason is policyviolation or not.
Bounce reason is rejected or not.
Bounce reason is securityerror or not.
Bounce reason is spamdetected due to Spam content in the message or not.
Bounce reason is suspend or not.
Bounce reason is syntaxerror or not.
Bounce reason is systemerror or not.
Bounce reason is systemfull or not.
Bounced due to that too many connections.
Sisimai could not detect the error reason.
Bounce reason is userunknown or not.
A recipient is out of office
Bounce reason is virusdetected or not.
Detect the bounce reason returned from certain remote hosts.
Detect the bounce reason returned from on-premises Exchange 2013 and Office 365.
Detect the bounce reason returned from Orange and La Poste.
Detect the bounce reason returned from GoDaddy.
Detect the bounce reason returned from Google Apps.
Detect the bounce reason returned from https://www.i.ua/.
Detect the bounce reason returned from au (KDDI).
Detect the bounce reason returned from Tencent QQ.
SMTP Status Codes related utilities
SMTP Errors related utilities
SMTP reply code related class
SMTP Enhanced Status Codes related utilities
String related class
Child class of Time::Piece for Sisimai::Data