diff -Nru libsisimai-perl-4.25.11/ChangeLog.md libsisimai-perl-4.25.12/ChangeLog.md --- libsisimai-perl-4.25.11/ChangeLog.md 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/ChangeLog.md 2021-11-22 03:09:25.000000000 +0000 @@ -4,6 +4,26 @@ - download: "https://metacpan.org/pod/Sisimai" - document: "https://libsisimai.org/" +v4.25.12 +-------------------------------------------------------------------------------- +- release: "Mon, 22 Nov 2021 12:22:22 +0900 (JST)" +- version: "4.25.12" +- changes: + - #438 Localize global variables used by YAML and YAML::Syck:`$YAML::Syck::*`, + `$YAML::*`. at `Sisimai::Data::YAML` module. Thanks to @bschmalhofer + - #441 Add a new error code of La Poste at `Sisimai::Rhost::FrancePTT` module, + a new sample email `rhost-franceptt-12.eml` into `set-of-emails/` directory. + Thanks to @vhenon + - Add `rfc3464-41.eml` and `rfc3464-42.eml` + - Remove all the HTML elements from the value of "diagnosticcode". + - #443 Fix serious bugs: imported from #442 + - Values of `deliverystatus` and `replycode` detected from the message body + did not use at `Sisimai::Lhost::Exim`. + - `true()` method strictly checks the value of `smtpcommand` at some classes + in `Sisimai::Reason`. For example, when a detected reason is `spamdetected` + and `virusdetected` the value of `smtpcommand` should be `DATA` or an SMTP + command to be sent after `DATA`. + v4.25.11 -------------------------------------------------------------------------------- - release: "Mon, 22 Feb 2021 21:11:22 +0900 (JST)" diff -Nru libsisimai-perl-4.25.11/Changes libsisimai-perl-4.25.12/Changes --- libsisimai-perl-4.25.11/Changes 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/Changes 2021-11-22 03:09:25.000000000 +0000 @@ -4,6 +4,26 @@ - download: "https://metacpan.org/pod/Sisimai" - document: "https://libsisimai.org/" +v4.25.12 +-------------------------------------------------------------------------------- +- release: "Mon, 22 Nov 2021 12:22:22 +0900 (JST)" +- version: "4.25.12" +- changes: + - #438 Localize global variables used by YAML and YAML::Syck:`$YAML::Syck::*`, + `$YAML::*`. at `Sisimai::Data::YAML` module. Thanks to @bschmalhofer + - #441 Add a new error code of La Poste at `Sisimai::Rhost::FrancePTT` module, + a new sample email `rhost-franceptt-12.eml` into `set-of-emails/` directory. + Thanks to @vhenon + - Add `rfc3464-41.eml` and `rfc3464-42.eml` + - Remove all the HTML elements from the value of "diagnosticcode". + - #443 Fix serious bugs: imported from #442 + - Values of `deliverystatus` and `replycode` detected from the message body + did not use at `Sisimai::Lhost::Exim`. + - `true()` method strictly checks the value of `smtpcommand` at some classes + in `Sisimai::Reason`. For example, when a detected reason is `spamdetected` + and `virusdetected` the value of `smtpcommand` should be `DATA` or an SMTP + command to be sent after `DATA`. + v4.25.11 -------------------------------------------------------------------------------- - release: "Mon, 22 Feb 2021 21:11:22 +0900 (JST)" diff -Nru libsisimai-perl-4.25.11/debian/changelog libsisimai-perl-4.25.12/debian/changelog --- libsisimai-perl-4.25.11/debian/changelog 2021-09-02 15:57:56.000000000 +0000 +++ libsisimai-perl-4.25.12/debian/changelog 2021-11-25 13:11:40.000000000 +0000 @@ -1,3 +1,9 @@ +libsisimai-perl (4.25.12-1) unstable; urgency=medium + + * Import upstream version 4.25.12. + + -- Yadd Thu, 25 Nov 2021 14:11:40 +0100 + libsisimai-perl (4.25.11-1) unstable; urgency=medium [ gregor herrmann ] diff -Nru libsisimai-perl-4.25.11/debian/control libsisimai-perl-4.25.12/debian/control --- libsisimai-perl-4.25.11/debian/control 2021-09-02 15:52:12.000000000 +0000 +++ libsisimai-perl-4.25.12/debian/control 2021-11-25 13:11:40.000000000 +0000 @@ -8,7 +8,7 @@ libmodule-build-tiny-perl, perl Build-Depends-Indep: libclass-accessor-lite-perl , - libjson-perl (>= 2.90) + libjson-perl Standards-Version: 4.6.0 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libsisimai-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libsisimai-perl.git @@ -20,8 +20,8 @@ Depends: ${misc:Depends}, ${perl:Depends}, libclass-accessor-lite-perl, - libjson-perl (>= 2.90), - perl (>= 5.21.4) + libjson-perl, + perl Suggests: libyaml-perl Description: Perl module to analyze bounce mails Sisimai is the system formerly known as bounceHammer 4. It is a Perl module diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Data/YAML.pm libsisimai-perl-4.25.12/lib/Sisimai/Data/YAML.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Data/YAML.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Data/YAML.pm 2021-11-22 03:09:25.000000000 +0000 @@ -32,20 +32,20 @@ $damneddata = $argvs->damn; if( $modulename eq 'YAML' ) { # Use YAML module - $YAML::SortKeys = 1; - $YAML::Stringify = 0; - $YAML::UseHeader = 1; - $YAML::UseBlock = 0; - $YAML::CompressSeries = 0; + local $YAML::SortKeys = 1; + local $YAML::Stringify = 0; + local $YAML::UseHeader = 1; + local $YAML::UseBlock = 0; + local $YAML::CompressSeries = 0; $yamlstring = YAML::Dump($damneddata); } elsif( $modulename eq 'YAML::Syck' ) { # Use YAML::Syck module instead of YAML module. - $YAML::Syck::ImplicitTyping = 1; - $YAML::Syck::Headless = 0; - $YAML::Syck::ImplicitUnicode = 1; - $YAML::Syck::SingleQuote = 0; - $YAML::Syck::SortKeys = 1; + local $YAML::Syck::ImplicitTyping = 1; + local $YAML::Syck::Headless = 0; + local $YAML::Syck::ImplicitUnicode = 1; + local $YAML::Syck::SingleQuote = 0; + local $YAML::Syck::SortKeys = 1; $yamlstring = YAML::Syck::Dump($damneddata); } @@ -95,7 +95,7 @@ =head1 COPYRIGHT -Copyright (C) 2014-2016,2018 azumakuniyuki, All rights reserved. +Copyright (C) 2014-2016,2018,2021 azumakuniyuki, All rights reserved. =head1 LICENSE diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Data.pm libsisimai-perl-4.25.12/lib/Sisimai/Data.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Data.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Data.pm 2021-11-22 03:09:25.000000000 +0000 @@ -258,6 +258,7 @@ # 550-5.7.1 this message has been blocked. Please visit # 550 5.7.1 https://support.google.com/mail/answer/188131 for more information. $p->{'diagnosticcode'} =~ s/$re/ /g; + $p->{'diagnosticcode'} =~ s|.+||i; $p->{'diagnosticcode'} = Sisimai::String->sweep($p->{'diagnosticcode'}); } } diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Lhost/Exim.pm libsisimai-perl-4.25.12/lib/Sisimai/Lhost/Exim.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Lhost/Exim.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Lhost/Exim.pm 2021-11-22 03:09:25.000000000 +0000 @@ -435,8 +435,8 @@ # Diagnostic-Code: smtp; 450 TEMPERROR: retry timeout exceeded # The value of "Status:" indicates permanent error but the value # of SMTP reply code in Diagnostic-Code: field is "TEMPERROR"!!!! - my $sv = Sisimai::SMTP::Status->find($e->{'diagnosis'}) || ''; - my $rv = Sisimai::SMTP::Reply->find($e->{'diagnosis'}) || ''; + my $sv = $e->{'status'} || Sisimai::SMTP::Status->find($e->{'diagnosis'}) || ''; + my $rv = $e->{'replycode'} || Sisimai::SMTP::Reply->find($e->{'diagnosis'}) || ''; my $s1 = 0; # First character of Status as integer my $r1 = 0; # First character of SMTP reply code as integer my $v1 = 0; @@ -524,7 +524,7 @@ =head1 COPYRIGHT -Copyright (C) 2014-2020 azumakuniyuki, All rights reserved. +Copyright (C) 2014-2021 azumakuniyuki, All rights reserved. =head1 LICENSE diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/Filtered.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/Filtered.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/Filtered.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/Filtered.pm 2021-11-22 03:09:25.000000000 +0000 @@ -49,15 +49,18 @@ require Sisimai::Reason::UserUnknown; my $alterclass = 'Sisimai::Reason::UserUnknown'; - my $commandtxt = $argvs->smtpcommand // ''; my $diagnostic = lc $argvs->diagnosticcode // ''; if( $tempreason eq 'filtered' ) { # Delivery status code points "filtered". - return 1 if( $alterclass->match($diagnostic) || __PACKAGE__->match($diagnostic) ); + return 1 if $alterclass->match($diagnostic); + return 1 if __PACKAGE__->match($diagnostic); - } elsif( $commandtxt ne 'RCPT' && $commandtxt ne 'MAIL' ) { - # Check the value of Diagnostic-Code and the last SMTP command + } else { + # The value of "reason" isn't "filtered" when the value of "smtpcommand" is an SMTP command + # to be sent before the SMTP DATA command because all the MTAs read the headers and the + # entire message body after the DATA command. + return 0 if $argvs->{'smtpcommand'} =~ /\A(?:CONN|EHLO|HELO|MAIL|RCPT)\z/; return 1 if __PACKAGE__->match($diagnostic); return 1 if $alterclass->match($diagnostic); } diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/NoRelaying.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/NoRelaying.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/NoRelaying.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/NoRelaying.pm 2021-11-22 03:09:25.000000000 +0000 @@ -47,14 +47,9 @@ my $class = shift; my $argvs = shift // return undef; - if( my $r = $argvs->reason // '' ) { - # Do not overwrite the reason - return 0 if( $r eq 'securityerror' || $r eq 'systemerror' || $r eq 'undefined' ); - } else { - # Check the value of Diagnosic-Code: header with patterns - return 1 if __PACKAGE__->match(lc $argvs->diagnosticcode); - } - return 0; + return 0 if $argvs->{'reason'} =~ /\A(?:securityerror|systemerror|undefined)\z/; + return 0 if $argvs->{'smtpcommand'} =~ /\A(?:CONN|EHLO|HELO)\z/; + return 1 if __PACKAGE__->match(lc $argvs->{'diagnosticcode'});return 0; } 1; diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/NotAccept.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/NotAccept.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/NotAccept.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/NotAccept.pm 2021-11-22 03:09:25.000000000 +0000 @@ -40,7 +40,7 @@ # SMTP Reply Code is 521, 554 or 556 return 1 if $argvs->replycode =~ /\A(?:521|554|556)\z/; - return 0 unless $argvs->smtpcommand eq 'MAIL'; + return 0 if $argvs->smtpcommand ne 'MAIL'; return 1 if __PACKAGE__->match(lc $argvs->diagnosticcode); return 0; } diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/PolicyViolation.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/PolicyViolation.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/PolicyViolation.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/PolicyViolation.pm 2021-11-22 03:09:25.000000000 +0000 @@ -44,7 +44,7 @@ } sub true { - # The bounce reason is security error or not + # The bounce reason is "policyviolation" or not # @param [Sisimai::Data] argvs Object to be detected the reason # @return [Integer] 1: is policy violation # 0: is not policyviolation diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/SpamDetected.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/SpamDetected.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/SpamDetected.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/SpamDetected.pm 2021-11-22 03:09:25.000000000 +0000 @@ -157,6 +157,11 @@ return undef unless $argvs->deliverystatus; return 1 if $argvs->reason eq 'spamdetected'; return 1 if (Sisimai::SMTP::Status->name($argvs->deliverystatus) || '') eq 'spamdetected'; + + # The value of "reason" isn't "spamdetected" when the value of "smtpcommand" is an SMTP command + # to be sent before the SMTP DATA command because all the MTAs read the headers and the entire + # message body after the DATA command. + return 0 if $argvs->{'smtpcommand'} =~ /\A(?:CONN|EHLO|HELO|MAIL|RCPT)\z/; return 1 if __PACKAGE__->match(lc $argvs->diagnosticcode); return 0; } diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Reason/VirusDetected.pm libsisimai-perl-4.25.12/lib/Sisimai/Reason/VirusDetected.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Reason/VirusDetected.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Reason/VirusDetected.pm 2021-11-22 03:09:25.000000000 +0000 @@ -32,7 +32,16 @@ # 0: virus was not detected # @since v4.22.0 # @see http://www.ietf.org/rfc/rfc2822.txt - return undef; + my $class = shift; + my $argvs = shift // return undef; + + # The value of "reason" isn't "virusdetected" when the value of "smtpcommand" is an SMTP com- + # mand to be sent before the SMTP DATA command because all the MTAs read the headers and the + # entire message body after the DATA command. + return 1 if $argvs->{'reason'} eq 'virusdetected'; + return 0 if $argvs->{'smtpcommand'} =~ /\A(?:CONN|EHLO|HELO|MAIL|RCPT)\z/; + return 1 if __PACKAGE__->match(lc $argvs->{'diagnosticcode'}); + return 0; } 1; @@ -90,7 +99,7 @@ =head1 COPYRIGHT -Copyright (C) 2017-2019 azumakuniyuki, All rights reserved. +Copyright (C) 2017-2019,2021 azumakuniyuki, All rights reserved. =head1 LICENSE diff -Nru libsisimai-perl-4.25.11/lib/Sisimai/Rhost/FrancePTT.pm libsisimai-perl-4.25.12/lib/Sisimai/Rhost/FrancePTT.pm --- libsisimai-perl-4.25.11/lib/Sisimai/Rhost/FrancePTT.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai/Rhost/FrancePTT.pm 2021-11-22 03:09:25.000000000 +0000 @@ -127,6 +127,10 @@ # Message refuse, verification DMARC en echec LPN007_517 '517' => 'policyviolation', + # 554 5.7.1 Client host rejected + # LPN000_630 + '630' => 'policyviolation', + # 421 mwinf5c77 ME Service refuse. Veuillez essayer plus tard. # Service refused, please try later. OFR_999 [999] '999' => 'blocked', @@ -176,7 +180,7 @@ =head1 COPYRIGHT -Copyright (C) 2017-2020 azumakuniyuki, All rights reserved. +Copyright (C) 2017-2021 azumakuniyuki, All rights reserved. =head1 LICENSE diff -Nru libsisimai-perl-4.25.11/lib/Sisimai.pm libsisimai-perl-4.25.12/lib/Sisimai.pm --- libsisimai-perl-4.25.11/lib/Sisimai.pm 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/lib/Sisimai.pm 2021-11-22 03:09:25.000000000 +0000 @@ -2,7 +2,7 @@ use feature ':5.10'; use strict; use warnings; -use version; our $VERSION = version->declare('v4.25.11'); our $PATCHLV = 0; +use version; our $VERSION = version->declare('v4.25.12'); our $PATCHLV = 0; sub version { return substr($VERSION->stringify, 1).($PATCHLV > 0 ? 'p'.$PATCHLV : '') } sub sysname { 'bouncehammer' } @@ -320,7 +320,7 @@ =head1 COPYRIGHT -Copyright (C) 2014-2020 azumakuniyuki, All rights reserved. +Copyright (C) 2014-2021 azumakuniyuki, All rights reserved. =head1 LICENSE diff -Nru libsisimai-perl-4.25.11/MANIFEST libsisimai-perl-4.25.12/MANIFEST --- libsisimai-perl-4.25.11/MANIFEST 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/MANIFEST 2021-11-22 03:09:26.000000000 +0000 @@ -613,6 +613,8 @@ set-of-emails/maildir/bsd/rfc3464-38.eml set-of-emails/maildir/bsd/rfc3464-39.eml set-of-emails/maildir/bsd/rfc3464-40.eml +set-of-emails/maildir/bsd/rfc3464-41.eml +set-of-emails/maildir/bsd/rfc3464-42.eml set-of-emails/maildir/bsd/rfc3834-01.eml set-of-emails/maildir/bsd/rfc3834-02.eml set-of-emails/maildir/bsd/rfc3834-03.eml @@ -631,6 +633,7 @@ set-of-emails/maildir/bsd/rhost-franceptt-08.eml set-of-emails/maildir/bsd/rhost-franceptt-10.eml set-of-emails/maildir/bsd/rhost-franceptt-11.eml +set-of-emails/maildir/bsd/rhost-franceptt-12.eml set-of-emails/maildir/bsd/rhost-godaddy-02.eml set-of-emails/maildir/bsd/rhost-godaddy-03.eml set-of-emails/maildir/bsd/rhost-googleapps-01.eml diff -Nru libsisimai-perl-4.25.11/META.json libsisimai-perl-4.25.12/META.json --- libsisimai-perl-4.25.11/META.json 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/META.json 2021-11-22 03:09:25.000000000 +0000 @@ -60,7 +60,7 @@ "provides" : { "Sisimai" : { "file" : "lib/Sisimai.pm", - "version" : "v4.25.11" + "version" : "v4.25.12" }, "Sisimai::ARF" : { "file" : "lib/Sisimai/ARF.pm" @@ -437,7 +437,7 @@ "web" : "https://github.com/sisimai/p5-sisimai" } }, - "version" : "v4.25.11", + "version" : "v4.25.12", "x_contributors" : [ "0xcdcdcdcd <0xcdcdcdcd@gmail.com>", "Adrian Yee ", @@ -447,6 +447,7 @@ "Mutsutoshi Yoshimoto ", "Stefan Hornburg (Racke) ", "Valentin Henon ", + "Valentin Henon ", "Xavier ", "Xavier Guimard ", "azuma, kuniyuki ", diff -Nru libsisimai-perl-4.25.11/META.yml libsisimai-perl-4.25.12/META.yml --- libsisimai-perl-4.25.11/META.yml 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/META.yml 2021-11-22 03:09:26.000000000 +0000 @@ -26,7 +26,7 @@ provides: Sisimai: file: lib/Sisimai.pm - version: v4.25.11 + version: v4.25.12 Sisimai::ARF: file: lib/Sisimai/ARF.pm Sisimai::Address: @@ -280,7 +280,7 @@ bugtracker: https://github.com/sisimai/p5-sisimai/issues homepage: https://libsisimai.org/ repository: git://github.com/sisimai/p5-sisimai.git -version: v4.25.11 +version: v4.25.12 x_contributors: - '0xcdcdcdcd <0xcdcdcdcd@gmail.com>' - 'Adrian Yee ' @@ -290,6 +290,7 @@ - 'Mutsutoshi Yoshimoto ' - 'Stefan Hornburg (Racke) ' - 'Valentin Henon ' + - 'Valentin Henon ' - 'Xavier ' - 'Xavier Guimard ' - 'azuma, kuniyuki ' diff -Nru libsisimai-perl-4.25.11/README-JA.md libsisimai-perl-4.25.12/README-JA.md --- libsisimai-perl-4.25.11/README-JA.md 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/README-JA.md 2021-11-22 03:09:25.000000000 +0000 @@ -4,7 +4,7 @@ [![Coverage Status](https://img.shields.io/coveralls/sisimai/p5-sisimai.svg)](https://coveralls.io/r/sisimai/p5-sisimai) [![Build Status](https://travis-ci.org/sisimai/p5-sisimai.svg?branch=master)](https://travis-ci.org/sisimai/p5-sisimai) [![Perl](https://img.shields.io/badge/perl-v5.10--v5.30-blue.svg)](https://www.perl.org) -[![CPAN](https://img.shields.io/badge/cpan-v4.25.11-blue.svg)](https://metacpan.org/pod/Sisimai) +[![CPAN](https://img.shields.io/badge/cpan-v4.25.12-blue.svg)](https://metacpan.org/pod/Sisimai) - [**README(English)**](README.md) - [シシマイ? | What is Sisimai](#what-is-sisimai) @@ -240,7 +240,7 @@ | cpan, cpanm, cpmコマンドでのインストール | 非対応 | 対応済 | | 依存モジュール数(Perlのコアモジュールを除く) | 24モジュール | 2モジュール | | LOC:ソースコードの行数 | 18200行 | 10500行 | -| テスト件数(t/,xt/ディレクトリ) | 27365件 | 265000件 | +| テスト件数(t/,xt/ディレクトリ) | 27365件 | 270000件 | | ライセンス | GPLv2かPerl | 二条項BSD | | 開発会社によるサポート契約 | 終売(EOS) | 提供中 | @@ -299,7 +299,7 @@ Copyright =============================================================================== -Copyright (C) 2014-2020 azumakuniyuki, All Rights Reserved. +Copyright (C) 2014-2021 azumakuniyuki, All Rights Reserved. License =============================================================================== diff -Nru libsisimai-perl-4.25.11/README.md libsisimai-perl-4.25.12/README.md --- libsisimai-perl-4.25.11/README.md 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/README.md 2021-11-22 03:09:25.000000000 +0000 @@ -4,7 +4,7 @@ [![Coverage Status](https://img.shields.io/coveralls/sisimai/p5-sisimai.svg)](https://coveralls.io/r/sisimai/p5-sisimai) [![Build Status](https://travis-ci.org/sisimai/p5-sisimai.svg?branch=master)](https://travis-ci.org/sisimai/p5-sisimai) [![Perl](https://img.shields.io/badge/perl-v5.10--v5.30-blue.svg)](https://www.perl.org) -[![CPAN](https://img.shields.io/badge/cpan-v4.25.11-blue.svg)](https://metacpan.org/pod/Sisimai) +[![CPAN](https://img.shields.io/badge/cpan-v4.25.12-blue.svg)](https://metacpan.org/pod/Sisimai) - [**README-JA(日本語)**](README-JA.md) - [What is Sisimai](#what-is-sisimai) @@ -245,7 +245,7 @@ | Install using cpan, cpanm, or cpm command | N/A | OK | | Dependencies (Except core modules of Perl) | 24 modules | 2 modules | | LOC:Source lines of code | 18200 lines | 10500 lines | -| The number of tests in t/, xt/ directory | 27365 tests | 265000 tests| +| The number of tests in t/, xt/ directory | 27365 tests | 270000 tests| | License | GPLv2 or Perl | 2 clause BSD| | Support Contract provided by Developer | End Of Sales | Available | @@ -306,7 +306,7 @@ Copyright =============================================================================== -Copyright (C) 2014-2020 azumakuniyuki, All Rights Reserved. +Copyright (C) 2014-2021 azumakuniyuki, All Rights Reserved. License =============================================================================== diff -Nru libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rfc3464-41.eml libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rfc3464-41.eml --- libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rfc3464-41.eml 1970-01-01 00:00:00.000000000 +0000 +++ libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rfc3464-41.eml 2021-11-22 03:09:26.000000000 +0000 @@ -0,0 +1,19 @@ +From MAILER-DAEMON Mon Sep 20 19:29:27 2021 +Return-Path: <> +X-Original-To: postmaster@peter.otto.org +Delivered-To: blackhole@localhost +From: +To: postmaster@any.com +Message-ID: +Date: Mon, 20 Sep 2021 21:29:21 +0200 (CEST) +X-RZG-CLASS-ID: mi +X-RZG-TRIGGERING-SMTP-ID: qcZaAFivUJ +MIME-Version: 1.0 +Content-Type: text/plain; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable +Subject: kitununulinitoquekegu +In-Reply-To: +Auto-Submitted: auto-replied + +zuk=C3=BCnftig +karl@hanz.de diff -Nru libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rfc3464-42.eml libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rfc3464-42.eml --- libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rfc3464-42.eml 1970-01-01 00:00:00.000000000 +0000 +++ libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rfc3464-42.eml 2021-11-22 03:09:26.000000000 +0000 @@ -0,0 +1,34 @@ +From MAILER-DAEMON Mon Sep 20 19:33:02 2021 +Return-Path: <> +X-Original-To: postmaster@blackhole.our-host.net +Delivered-To: blackhole@localhost +Received: from mx2.itnetwork.net (mx2.itnetwork.net [123.123.123.202]) + by play.thmthlayer.com (Postfix) with ESMTPS id 94598E117B + for ; Mon, 20 Sep 2021 19:33:02 +0000 (UTC) +Received: from 10.9.37.234 ([10.9.34.13]) by mx2.itnetwork.net with ESMTP id rTR3cr9xLoMiR5vX for ; Mon, 20 Sep 2021 21:33:01 +0200 (CEST) +Date: Mon, 20 Sep 2021 21:32:59 +0200 (GMT+02:00) +From: Postmaster@bit-onbreeeck.org +To: MyName +Subject: foobar +Mime-Version: 1.0 +Message-ID: +Content-Type: multipart/report; report-type=delivery-status; boundary="==IFJRGLKFGIR7891042UHRUHIHD" + +--==IFJRGLKFGIR7891042UHRUHIHD +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: base64 + +ICBhdWZnZWb8aHJ0DQoNCg== + +--==IFJRGLKFGIR7891042UHRUHIHD +Content-Type: message/delivery-status + +Reporting-MTA: dns;10.9.37.234 + +Final-Recipient: rfc822;jane.doe@some-domain.net +Action: failed +Status: 5.0.0 +Diagnostic-Code: The email account that you tried to reach does not exist. + +--==IFJRGLKFGIR7891042UHRUHIHD-- + diff -Nru libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rhost-franceptt-12.eml libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rhost-franceptt-12.eml --- libsisimai-perl-4.25.11/set-of-emails/maildir/bsd/rhost-franceptt-12.eml 1970-01-01 00:00:00.000000000 +0000 +++ libsisimai-perl-4.25.12/set-of-emails/maildir/bsd/rhost-franceptt-12.eml 2021-11-22 03:09:26.000000000 +0000 @@ -0,0 +1,82 @@ +Return-Path: <> +X-Original-To: xxxx@xxxx.net +Delivered-To: xxxx@xxxx.xxxx.net +Received: from xxxx.xxxx.net (xxxx.xxxx.net [#.#.#.#]) + by xxxx.xxxx.net (Postfix) with ESMTP id D827520D624B + for ; Fri, 15 Oct 2021 14:42:03 +0200 (CEST) +Received: by xxxx.xxxx.net (Postfix) + id C6602268DDF8; Fri, 15 Oct 2021 14:42:00 +0200 (CEST) +Date: Fri, 15 Oct 2021 14:42:00 +0200 (CEST) +From: MAILER-DAEMON@xxxx.xxxx.net (Mail Delivery System) +Subject: Undelivered Mail Returned to Sender +To: xxxx.xxxx.net +Auto-Submitted: auto-replied +MIME-Version: 1.0 +Content-Type: multipart/report; report-type=delivery-status; + boundary="64BD1268DDF4.xxxx.xxxx.net" +Content-Transfer-Encoding: 8bit +Message-Id: <20211015124200.xxxx.xxxx.net> + +This is a MIME-encapsulated message. + +--64BD1268DDF4.xxxx.xxxx.net +Content-Description: Notification +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +This is the mail system at host xxxx.xxxx.net. + +I'm sorry to have to inform you that your message could not +be delivered to one or more recipients. It's attached below. + +For further assistance, please send mail to postmaster. + +If you do so, please include this problem report. You can +delete your own text from the attached returned message. + + The mail system + +: host smtpz4.laposte.net said: 554 + 5.7.1 : Client host rejected: + #216 lpn LPN000_630 (in reply to RCPT TO command) + +--64BD1268DDF4.xxxx.xxxx.net +Content-Description: Delivery report +Content-Type: message/delivery-status + +Reporting-MTA: dns; xxxx.xxxx.net +X-Postfix-Queue-ID: 64BD1268DDF4 +X-Postfix-Sender: rfc822; xxxx.xxxx.net +Arrival-Date: Fri, 15 Oct 2021 14:41:59 +0200 (CEST) + +Final-Recipient: rfc822; xxxx@laposte.net +Original-Recipient: rfc822;xxxx@laposte.net +Action: failed +Status: 5.7.1 +Remote-MTA: dns; smtpz4.laposte.net +Diagnostic-Code: smtp; 554 5.7.1 : + Client host rejected: #216 lpn LPN000_630 + +--64BD1268DDF4.xxxx.xxxx.net +Content-Description: Undelivered Message Headers +Content-Type: text/rfc822-headers +Content-Transfer-Encoding: 8bit + +Return-Path: +Received: from [#.#.#.#] (unknown [#.#.#.#]) + by xxxx.xxxx.net (Postfix) with ESMTPS id 64BD1268DDF4 + for ; Fri, 15 Oct 2021 14:41:59 +0200 (CEST) +Message-Id: +Feedback-Id: 657:1802 +List-Unsubscribe: +Precedence: bulk +From: "=?UTF-8?Q?Kipli_par_AM?=" +To: xxxx@r-v-b.com +Reply-To: newsletter@xxxx.net +Content-Type: multipart/alternative; boundary="_----------=_1634301717326132" +Subject: =?UTF-8?Q?xxxx?= +Content-Transfer-Encoding: binary +MIME-Version: 1.0 +Date: Fri, 15 Oct 2021 14:41:57 +0200 + +--64BD1268DDF4.xxxx.xxxx.net-- diff -Nru libsisimai-perl-4.25.11/t/022-mail-maildir.t libsisimai-perl-4.25.12/t/022-mail-maildir.t --- libsisimai-perl-4.25.11/t/022-mail-maildir.t 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/t/022-mail-maildir.t 2021-11-22 03:09:26.000000000 +0000 @@ -8,7 +8,7 @@ 'class' => ['new'], 'object' => ['path', 'dir', 'file', 'size', 'offset', 'handle', 'read'], }; -my $MaildirSize = 503; +my $MaildirSize = 506; my $SampleEmail = './set-of-emails/maildir/bsd'; my $NewInstance = $PackageName->new($SampleEmail); diff -Nru libsisimai-perl-4.25.11/t/304-rhost-franceptt.t libsisimai-perl-4.25.12/t/304-rhost-franceptt.t --- libsisimai-perl-4.25.11/t/304-rhost-franceptt.t 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/t/304-rhost-franceptt.t 2021-11-22 03:09:26.000000000 +0000 @@ -24,6 +24,7 @@ '08' => { 'status' => qr/\A4[.]2[.]0\z/, 'reason' => qr/systemerror/ }, '10' => { 'status' => qr/\A4[.]5[.]0\z/, 'reason' => qr/undefined/ }, '11' => { 'status' => qr/\A4[.]2[.]1\z/, 'reason' => qr/undefined/ }, + '12' => { 'status' => qr/\A5[.]7[.]1\z/, 'reason' => qr/policyviolation/ }, }; is $PackageName->get, undef; diff -Nru libsisimai-perl-4.25.11/t/618-lhost-exim.t libsisimai-perl-4.25.12/t/618-lhost-exim.t --- libsisimai-perl-4.25.11/t/618-lhost-exim.t 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/t/618-lhost-exim.t 2021-11-22 03:09:26.000000000 +0000 @@ -15,7 +15,7 @@ { 'n' => '06', 's' => qr/\A4[.]0[.]\d+\z/, 'r' => qr/expired/, 'b' => qr/\A1\z/ }, { 'n' => '07', 's' => qr/\A4[.]0[.]\d+\z/, 'r' => qr/mailboxfull/, 'b' => qr/\A1\z/ }, { 'n' => '08', 's' => qr/\A4[.]0[.]\d+\z/, 'r' => qr/expired/, 'b' => qr/\A1\z/ }, - { 'n' => '29', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, + { 'n' => '29', 's' => qr/\A5[.]0[.]0\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, { 'n' => '30', 's' => qr/\A5[.]7[.]1\z/, 'r' => qr/userunknown/, 'b' => qr/\A0\z/ }, { 'n' => '31', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/hostunknown/, 'b' => qr/\A0\z/ }, { 'n' => '32', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, @@ -35,7 +35,7 @@ { 'n' => '46', 's' => qr/\A5[.]7[.]1\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, { 'n' => '47', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, { 'n' => '48', 's' => qr/\A5[.]7[.]1\z/, 'r' => qr/rejected/, 'b' => qr/\A1\z/ }, - { 'n' => '49', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, + { 'n' => '49', 's' => qr/\A5[.]0[.]0/, 'r' => qr/blocked/, 'b' => qr/\A1\z/ }, { 'n' => '50', 's' => qr/\A5[.]1[.]7\z/, 'r' => qr/rejected/, 'b' => qr/\A1\z/ }, { 'n' => '51', 's' => qr/\A5[.]1[.]0\z/, 'r' => qr/rejected/, 'b' => qr/\A1\z/ }, { 'n' => '52', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/syntaxerror/, 'b' => qr/\A1\z/ }, diff -Nru libsisimai-perl-4.25.11/t/698-rfc3464.t libsisimai-perl-4.25.12/t/698-rfc3464.t --- libsisimai-perl-4.25.11/t/698-rfc3464.t 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/t/698-rfc3464.t 2021-11-22 03:09:26.000000000 +0000 @@ -25,6 +25,8 @@ { 'n' => '38', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/mailboxfull/, 'a' => qr/RFC3464/, 'b' => qr/\A1\z/ }, { 'n' => '39', 's' => qr/\A5[.]0[.]\d+\z/, 'r' => qr/onhold/, 'a' => qr/RFC3464/, 'b' => qr/\A1\z/ }, { 'n' => '40', 's' => qr/\A4[.]4[.]6\z/, 'r' => qr/networkerror/, 'a' => qr/RFC3464/, 'b' => qr/\A1\z/ }, + { 'n' => '41', 's' => qr/\A5[.]0[.]901\z/, 'r' => qr/onhold/, 'a' => qr/RFC3464/, 'b' => qr/\A1\z/ }, + { 'n' => '42', 's' => qr/\A5[.]0[.]0\z/, 'r' => qr/filtered/, 'a' => qr/RFC3464/, 'b' => qr/\A1\z/ }, ]; $enginetest->($enginename, $isexpected); diff -Nru libsisimai-perl-4.25.11/xt/619-lhost-ezweb.t libsisimai-perl-4.25.12/xt/619-lhost-ezweb.t --- libsisimai-perl-4.25.11/xt/619-lhost-ezweb.t 2021-02-22 12:22:45.000000000 +0000 +++ libsisimai-perl-4.25.12/xt/619-lhost-ezweb.t 2021-11-22 03:09:26.000000000 +0000 @@ -114,7 +114,7 @@ { 'n' => '01105', 'r' => qr/filtered/ }, { 'n' => '01106', 'r' => qr/userunknown/ }, { 'n' => '01107', 'r' => qr/filtered/ }, - { 'n' => '01108', 'r' => qr/userunknown/ }, + { 'n' => '01108', 'r' => qr/norelaying/ }, { 'n' => '01109', 'r' => qr/userunknown/ }, { 'n' => '01110', 'r' => qr/filtered/ }, { 'n' => '01111', 'r' => qr/suspend/ },