From 855c8eb2d33fabf5437623cbb2c497b548b84e23 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Thu, 25 Feb 2021 20:51:49 +0900 Subject: [PATCH 01/10] Add error messages in Dutch at Sisimai::Lhost::Office365 --- lib/Sisimai/Lhost/Office365.pm | 18 +++++++++++++++--- lib/Sisimai/Order.pm | 1 + xt/750-lhost-office365.t | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/Sisimai/Lhost/Office365.pm b/lib/Sisimai/Lhost/Office365.pm index f99f03d1a..07bda0316 100644 --- a/lib/Sisimai/Lhost/Office365.pm +++ b/lib/Sisimai/Lhost/Office365.pm @@ -26,6 +26,7 @@ sub inquire { # X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted # X-MS-Exchange-Transport-CrossTenantHeadersStamped: ... $match++ if index($mhead->{'subject'}, 'Undeliverable:') > -1; + $match++ if index($mhead->{'subject'}, 'Onbestelbaar:') > -1; $match++ if $mhead->{'x-ms-exchange-message-is-ndr'}; $match++ if $mhead->{'x-microsoft-antispam-prvs'}; $match++ if $mhead->{'x-exchange-antispam-report-test'}; @@ -43,12 +44,23 @@ sub inquire { state $indicators = __PACKAGE__->INDICATORS; state $rebackbone = qr|^Content-Type:[ ]message/rfc822|m; state $markingsof = { - 'eoe' => qr/\A(?:Original[ ][Mm]essage[ ][Hh]eaders:?|Message[ ]Hops)/, + 'eoe' => qr{\A(?: + Original[ ][Mm]essage[ ][Hh]eaders:? + |Message[ ]Hops + |Oorspronkelijke[ ]berichtkoppen: + ) + }x, 'rfc3464' => qr|\AContent-Type:[ ]message/delivery-status|, - 'error' => qr/\A(?:Diagnostic[ ]information[ ]for[ ]administrators:|Error[ ]Details)/, + 'error' => qr{\A(?: + Diagnostic[ ]information[ ]for[ ]administrators: + |Diagnostische[ ]gegevens[ ]voor[ ]beheerders: + |Error[ ]Details + ) + }x, 'message' => qr{\A(?: Delivery[ ]has[ ]failed[ ]to[ ]these[ ]recipients[ ]or[ ]groups: |Original[ ]Message[ ]Details + |Uw[ ]bericht[ ]kan[ ]niet[ ]worden[ ]bezorgd[ ]bij[ ]de[ ]volgende[ ]geadresseerden[ ]of[ ]groepen: |.+[ ]rejected[ ]your[ ]message[ ]to[ ]the[ ]following[ ]e[-]?mail[ ]addresses: ) }x, @@ -134,7 +146,7 @@ sub inquire { $v->{'recipient'} = $1; $recipients++; - } elsif( $e =~ /\AGenerating server: (.+)\z/ ) { + } elsif( $e =~ /\A(?:Bronserver|Generating server): (.+)\z/ ) { # Generating server: FFFFFFFFFFFF.e0.prod.outlook.com $permessage->{'lhost'} = lc $1; diff --git a/lib/Sisimai/Order.pm b/lib/Sisimai/Order.pm index e59271ba7..4c91f7b7d 100644 --- a/lib/Sisimai/Order.pm +++ b/lib/Sisimai/Order.pm @@ -67,6 +67,7 @@ sub make { 'non-recapitabile' => ['Sisimai::Lhost::Exchange2007'], 'non-remis' => ['Sisimai::Lhost::Exchange2007'], 'notice' => ['Sisimai::Lhost::Courier'], + 'onbestelbaar' => ['Sisimai::Lhost::Office365'], 'permanent-delivery' => ['Sisimai::Lhost::X4'], 'postmaster-notify' => ['Sisimai::Lhost::Sendmail'], 'returned-mail' => [ diff --git a/xt/750-lhost-office365.t b/xt/750-lhost-office365.t index 9fd21f8ac..bdb4f1edf 100644 --- a/xt/750-lhost-office365.t +++ b/xt/750-lhost-office365.t @@ -36,6 +36,7 @@ my $isexpected = { '01025' => [['5.1.10', '550', 'userunknown', 1]], '01026' => [['5.1.10', '550', 'userunknown', 1]], '01027' => [['5.1.1', '550', 'userunknown', 1]], + '01028' => [['5.1.1', '550', 'userunknown', 1]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; From 88059fefcbcf601747cea497db06fd7d0dd6571b Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Thu, 25 Feb 2021 23:18:48 +0900 Subject: [PATCH 02/10] Add error messages in Portuguese at Sisimai::Lhost::Office365 --- lib/Sisimai/Lhost/Office365.pm | 6 +++++- xt/750-lhost-office365.t | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Sisimai/Lhost/Office365.pm b/lib/Sisimai/Lhost/Office365.pm index 07bda0316..d790ede87 100644 --- a/lib/Sisimai/Lhost/Office365.pm +++ b/lib/Sisimai/Lhost/Office365.pm @@ -27,6 +27,7 @@ sub inquire { # X-MS-Exchange-Transport-CrossTenantHeadersStamped: ... $match++ if index($mhead->{'subject'}, 'Undeliverable:') > -1; $match++ if index($mhead->{'subject'}, 'Onbestelbaar:') > -1; + $match++ if index($mhead->{'subject'}, 'Não_entregue:') > -1; $match++ if $mhead->{'x-ms-exchange-message-is-ndr'}; $match++ if $mhead->{'x-microsoft-antispam-prvs'}; $match++ if $mhead->{'x-exchange-antispam-report-test'}; @@ -47,6 +48,7 @@ sub inquire { 'eoe' => qr{\A(?: Original[ ][Mm]essage[ ][Hh]eaders:? |Message[ ]Hops + |Cabe.+alhos[ ]originais[ ]da[ ]mensagem: |Oorspronkelijke[ ]berichtkoppen: ) }x, @@ -54,11 +56,13 @@ sub inquire { 'error' => qr{\A(?: Diagnostic[ ]information[ ]for[ ]administrators: |Diagnostische[ ]gegevens[ ]voor[ ]beheerders: + |Informa.+es[ ]de[ ]diagn.+stico[ ]para[ ]administradores: |Error[ ]Details ) }x, 'message' => qr{\A(?: Delivery[ ]has[ ]failed[ ]to[ ]these[ ]recipients[ ]or[ ]groups: + |Falha[ ]na[ ]entrega[ ]a[ ]estes[ ]destinat.+rios[ ]ou[ ]grupos: |Original[ ]Message[ ]Details |Uw[ ]bericht[ ]kan[ ]niet[ ]worden[ ]bezorgd[ ]bij[ ]de[ ]volgende[ ]geadresseerden[ ]of[ ]groepen: |.+[ ]rejected[ ]your[ ]message[ ]to[ ]the[ ]following[ ]e[-]?mail[ ]addresses: @@ -146,7 +150,7 @@ sub inquire { $v->{'recipient'} = $1; $recipients++; - } elsif( $e =~ /\A(?:Bronserver|Generating server): (.+)\z/ ) { + } elsif( $e =~ /\A(?:Bronserver|Generating server|Servidor de origem:): (.+)\z/ ) { # Generating server: FFFFFFFFFFFF.e0.prod.outlook.com $permessage->{'lhost'} = lc $1; diff --git a/xt/750-lhost-office365.t b/xt/750-lhost-office365.t index bdb4f1edf..afe01785b 100644 --- a/xt/750-lhost-office365.t +++ b/xt/750-lhost-office365.t @@ -37,6 +37,7 @@ my $isexpected = { '01026' => [['5.1.10', '550', 'userunknown', 1]], '01027' => [['5.1.1', '550', 'userunknown', 1]], '01028' => [['5.1.1', '550', 'userunknown', 1]], + '01029' => [['5.1.1', '550', 'userunknown', 1]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; From 27f79fef64dc7f2652b96d55182d25de38c557a0 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Thu, 25 Feb 2021 23:31:45 +0900 Subject: [PATCH 03/10] Define a regular expression for capturing the value of "lhost" --- lib/Sisimai/Lhost/Office365.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/Sisimai/Lhost/Office365.pm b/lib/Sisimai/Lhost/Office365.pm index d790ede87..fa571c120 100644 --- a/lib/Sisimai/Lhost/Office365.pm +++ b/lib/Sisimai/Lhost/Office365.pm @@ -53,6 +53,12 @@ sub inquire { ) }x, 'rfc3464' => qr|\AContent-Type:[ ]message/delivery-status|, + 'lhost' => qr{\A(?: + Generating[ ]server + |Bronserver + |Servidor[ ]de[ ]origem + ):[ ](.+)\z + }x, 'error' => qr{\A(?: Diagnostic[ ]information[ ]for[ ]administrators: |Diagnostische[ ]gegevens[ ]voor[ ]beheerders: @@ -150,7 +156,7 @@ sub inquire { $v->{'recipient'} = $1; $recipients++; - } elsif( $e =~ /\A(?:Bronserver|Generating server|Servidor de origem:): (.+)\z/ ) { + } elsif( $e =~ $markingsof->{'lhost'} ) { # Generating server: FFFFFFFFFFFF.e0.prod.outlook.com $permessage->{'lhost'} = lc $1; From 890a9dd340cba7295c167565594d2a8952f29f52 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Thu, 25 Feb 2021 23:41:40 +0900 Subject: [PATCH 04/10] Sort error message patterns in alphabetical order (The first is English) --- lib/Sisimai/Lhost/Office365.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Sisimai/Lhost/Office365.pm b/lib/Sisimai/Lhost/Office365.pm index fa571c120..c00202c2d 100644 --- a/lib/Sisimai/Lhost/Office365.pm +++ b/lib/Sisimai/Lhost/Office365.pm @@ -61,17 +61,17 @@ sub inquire { }x, 'error' => qr{\A(?: Diagnostic[ ]information[ ]for[ ]administrators: + |Error[ ]Details |Diagnostische[ ]gegevens[ ]voor[ ]beheerders: |Informa.+es[ ]de[ ]diagn.+stico[ ]para[ ]administradores: - |Error[ ]Details ) }x, 'message' => qr{\A(?: Delivery[ ]has[ ]failed[ ]to[ ]these[ ]recipients[ ]or[ ]groups: - |Falha[ ]na[ ]entrega[ ]a[ ]estes[ ]destinat.+rios[ ]ou[ ]grupos: |Original[ ]Message[ ]Details - |Uw[ ]bericht[ ]kan[ ]niet[ ]worden[ ]bezorgd[ ]bij[ ]de[ ]volgende[ ]geadresseerden[ ]of[ ]groepen: |.+[ ]rejected[ ]your[ ]message[ ]to[ ]the[ ]following[ ]e[-]?mail[ ]addresses: + |Falha[ ]na[ ]entrega[ ]a[ ]estes[ ]destinat.+rios[ ]ou[ ]grupos: + |Uw[ ]bericht[ ]kan[ ]niet[ ]worden[ ]bezorgd[ ]bij[ ]de[ ]volgende[ ]geadresseerden[ ]of[ ]groepen: ) }x, }; From 9c18ad019de4b45ebcddd2b1fda5654a7a5ed73f Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Thu, 25 Feb 2021 23:59:22 +0900 Subject: [PATCH 05/10] Add some private samples --- xt/640-lhost-domino.t | 1 + xt/750-lhost-office365.t | 1 + xt/791-lhost-sendmail.t | 1 + 3 files changed, 3 insertions(+) diff --git a/xt/640-lhost-domino.t b/xt/640-lhost-domino.t index 3bdd5a6a4..23bcb6d43 100644 --- a/xt/640-lhost-domino.t +++ b/xt/640-lhost-domino.t @@ -26,6 +26,7 @@ my $isexpected = { '01015' => [['5.0.0', '', 'networkerror', 0]], '01016' => [['5.0.0', '', 'systemerror', 0]], '01017' => [['5.0.0', '', 'userunknown', 1]], + '01018' => [['5.1.1', '', 'userunknown', 1]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/750-lhost-office365.t b/xt/750-lhost-office365.t index afe01785b..2a23e3e7a 100644 --- a/xt/750-lhost-office365.t +++ b/xt/750-lhost-office365.t @@ -38,6 +38,7 @@ my $isexpected = { '01027' => [['5.1.1', '550', 'userunknown', 1]], '01028' => [['5.1.1', '550', 'userunknown', 1]], '01029' => [['5.1.1', '550', 'userunknown', 1]], + '01030' => [['5.2.3', '550', 'exceedlimit', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/791-lhost-sendmail.t b/xt/791-lhost-sendmail.t index 079d600f5..02ca00e37 100644 --- a/xt/791-lhost-sendmail.t +++ b/xt/791-lhost-sendmail.t @@ -239,6 +239,7 @@ my $isexpected = { '01226' => [['5.7.1', '550', 'rejected', 0]], '01227' => [['5.7.1', '550', 'rejected', 0]], '01228' => [['5.1.1', '550', 'userunknown', 1]], + '01229' => [['5.4.1', '550', 'rejected', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; From 600037c284c2a52773476dac8beab0ccce56de1e Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Fri, 26 Feb 2021 17:01:49 +0900 Subject: [PATCH 06/10] Add "no se encuentra en el Directorio de Domino" into the error message list (ES) --- lib/Sisimai/Lhost/Domino.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Sisimai/Lhost/Domino.pm b/lib/Sisimai/Lhost/Domino.pm index 23f9f6c63..fbcceaf6a 100644 --- a/lib/Sisimai/Lhost/Domino.pm +++ b/lib/Sisimai/Lhost/Domino.pm @@ -27,6 +27,7 @@ sub inquire { 'userunknown' => [ 'not listed in Domino Directory', 'not listed in public Name & Address Book', + 'no se encuentra en el Directorio de Domino', "non répertorié dans l'annuaire Domino", 'Domino ディレクトリには見つかりません', ], From a91dd410f2cce7c589cbe0db968d6ca003c03d11 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Fri, 26 Feb 2021 17:02:35 +0900 Subject: [PATCH 07/10] Add private sample for Sisimai::Lhost::Domino/1019 600037c2 --- xt/640-lhost-domino.t | 1 + 1 file changed, 1 insertion(+) diff --git a/xt/640-lhost-domino.t b/xt/640-lhost-domino.t index 23bcb6d43..6c913243a 100644 --- a/xt/640-lhost-domino.t +++ b/xt/640-lhost-domino.t @@ -27,6 +27,7 @@ my $isexpected = { '01016' => [['5.0.0', '', 'systemerror', 0]], '01017' => [['5.0.0', '', 'userunknown', 1]], '01018' => [['5.1.1', '', 'userunknown', 1]], + '01019' => [['5.0.0', '', 'userunknown', 1]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; From 871cc3392d560e5b8c7519b44fbc14d95369c586 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Fri, 26 Feb 2021 17:03:13 +0900 Subject: [PATCH 08/10] Some error messages have been added into Sisimai::Reason::* --- lib/Sisimai/Reason/NotAccept.pm | 1 + lib/Sisimai/Reason/Suspend.pm | 1 + lib/Sisimai/Reason/SystemError.pm | 1 + lib/Sisimai/Reason/VirusDetected.pm | 1 + xt/612-lhost-amazonses.t | 2 ++ xt/652-lhost-exchange2007.t | 1 + xt/750-lhost-office365.t | 1 + xt/760-lhost-postfix.t | 2 ++ xt/890-rfc3464.t | 1 + 9 files changed, 11 insertions(+) diff --git a/lib/Sisimai/Reason/NotAccept.pm b/lib/Sisimai/Reason/NotAccept.pm index 4c57a07cc..326203db1 100644 --- a/lib/Sisimai/Reason/NotAccept.pm +++ b/lib/Sisimai/Reason/NotAccept.pm @@ -18,6 +18,7 @@ sub match { state $index = [ 'host/domain does not accept mail', # iCloud 'host does not accept mail', # Sendmail + 'mail receiving disabled', 'name server: .: host not found', # Sendmail 'no mx record found for domain=', # Oath(Yahoo!) 'no route for current request', diff --git a/lib/Sisimai/Reason/Suspend.pm b/lib/Sisimai/Reason/Suspend.pm index 3f36d82ae..6f2f3caf3 100644 --- a/lib/Sisimai/Reason/Suspend.pm +++ b/lib/Sisimai/Reason/Suspend.pm @@ -22,6 +22,7 @@ sub match { 'has been suspended', 'invalid/inactive user', 'is a deactivated mailbox', # http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000742 + 'is unavailable: user is terminated', 'mailbox currently suspended', 'mailbox is frozen', 'mailbox unavailable or access denied', diff --git a/lib/Sisimai/Reason/SystemError.pm b/lib/Sisimai/Reason/SystemError.pm index 83ec83b52..004748597 100644 --- a/lib/Sisimai/Reason/SystemError.pm +++ b/lib/Sisimai/Reason/SystemError.pm @@ -28,6 +28,7 @@ sub match { 'loop was found in the mail exchanger', 'loops back to myself', 'mail system configuration error', + 'recipient deferred because there is no mdb', 'remote server is misconfigured', 'server configuration error', 'service currently unavailable', diff --git a/lib/Sisimai/Reason/VirusDetected.pm b/lib/Sisimai/Reason/VirusDetected.pm index ede4b4bb5..1846cb66b 100644 --- a/lib/Sisimai/Reason/VirusDetected.pm +++ b/lib/Sisimai/Reason/VirusDetected.pm @@ -19,6 +19,7 @@ sub match { 'the message was rejected because it contains prohibited virus or spam content', 'this form of attachment has been used by recent viruses or other malware', 'virus detected', + 'virus phishing/malicious_url detected', 'your message was infected with a virus', ]; return 1 if grep { rindex($argv1, $_) > -1 } @$index; diff --git a/xt/612-lhost-amazonses.t b/xt/612-lhost-amazonses.t index 31301634c..10971ba7e 100644 --- a/xt/612-lhost-amazonses.t +++ b/xt/612-lhost-amazonses.t @@ -38,6 +38,8 @@ my $isexpected = { '01027' => [['5.2.2', '552', 'mailboxfull', 0]], '01028' => [['5.4.7', '', 'expired', 0]], '01029' => [['5.3.0', '550', 'filtered', 0]], + '01030' => [['2.6.0', '250', 'delivered', 0]], + '01031' => [['2.6.0', '250', 'delivered', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/652-lhost-exchange2007.t b/xt/652-lhost-exchange2007.t index bbb98f783..591219e9c 100644 --- a/xt/652-lhost-exchange2007.t +++ b/xt/652-lhost-exchange2007.t @@ -22,6 +22,7 @@ my $isexpected = { '01011' => [['5.2.3', '550', 'exceedlimit', 0]], '01012' => [['5.1.1', '550', 'userunknown', 1]], '01013' => [['5.0.910', '550', 'filtered', 0]], + '01014' => [['4.2.0', '420', 'systemerror', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/750-lhost-office365.t b/xt/750-lhost-office365.t index 2a23e3e7a..8311b4420 100644 --- a/xt/750-lhost-office365.t +++ b/xt/750-lhost-office365.t @@ -39,6 +39,7 @@ my $isexpected = { '01028' => [['5.1.1', '550', 'userunknown', 1]], '01029' => [['5.1.1', '550', 'userunknown', 1]], '01030' => [['5.2.3', '550', 'exceedlimit', 0]], + '01031' => [['5.1.10', '550', 'userunknown', 1]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/760-lhost-postfix.t b/xt/760-lhost-postfix.t index 78e920f6f..b7fc7bbcf 100644 --- a/xt/760-lhost-postfix.t +++ b/xt/760-lhost-postfix.t @@ -283,6 +283,8 @@ my $isexpected = { '01265' => [['5.0.0', '554', 'rejected', 0]], '01266' => [['5.0.0', '550', 'suspend', 0]], '01267' => [['5.0.0', '550', 'onhold', 0]], # spamdetected + '01268' => [['5.0.0', '550', 'suspend', 0]], + '01269' => [['5.0.0', '550', 'virusdetected', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; diff --git a/xt/890-rfc3464.t b/xt/890-rfc3464.t index c9c53b6e2..b30dd7417 100644 --- a/xt/890-rfc3464.t +++ b/xt/890-rfc3464.t @@ -278,6 +278,7 @@ my $isexpected = { '01286' => [['5.5.0', '550', 'rejected', 0]], '01287' => [['5.0.0', '550', 'filtered', 0]], '01288' => [['5.0.0', '552', 'exceedlimit', 0]], + '01289' => [['4.0.0', '', 'notaccept', 0]], }; plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; From 106464164f5ae565420aa64bee43c05075f90271 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Fri, 26 Feb 2021 21:22:57 +0900 Subject: [PATCH 09/10] =?UTF-8?q?Add=20"n=C3=A3o-entregue"=20into=20the=20?= =?UTF-8?q?order=20list=20as=20a=20subject=20label=20(PT)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Sisimai/Order.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Sisimai/Order.pm b/lib/Sisimai/Order.pm index 4c91f7b7d..50f160aca 100644 --- a/lib/Sisimai/Order.pm +++ b/lib/Sisimai/Order.pm @@ -66,6 +66,7 @@ sub make { 'message-you' => ['Sisimai::Lhost::Barracuda'], 'non-recapitabile' => ['Sisimai::Lhost::Exchange2007'], 'non-remis' => ['Sisimai::Lhost::Exchange2007'], + 'não-entregue' => ['Sisimai::Lhost::Office365'], 'notice' => ['Sisimai::Lhost::Courier'], 'onbestelbaar' => ['Sisimai::Lhost::Office365'], 'permanent-delivery' => ['Sisimai::Lhost::X4'], From e770ad0aa0e6d995321ed7a7d589bcf7245a3941 Mon Sep 17 00:00:00 2001 From: azumakuniyuki Date: Fri, 26 Feb 2021 22:21:10 +0900 Subject: [PATCH 10/10] Update the order by subject (alphabetical order) --- lib/Sisimai/Order.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Sisimai/Order.pm b/lib/Sisimai/Order.pm index 50f160aca..d82bb90dd 100644 --- a/lib/Sisimai/Order.pm +++ b/lib/Sisimai/Order.pm @@ -64,9 +64,9 @@ sub make { 'message-delivery' => ['Sisimai::Lhost::MailFoundry'], 'message-frozen' => ['Sisimai::Lhost::Exim'], 'message-you' => ['Sisimai::Lhost::Barracuda'], + 'não-entregue' => ['Sisimai::Lhost::Office365'], 'non-recapitabile' => ['Sisimai::Lhost::Exchange2007'], 'non-remis' => ['Sisimai::Lhost::Exchange2007'], - 'não-entregue' => ['Sisimai::Lhost::Office365'], 'notice' => ['Sisimai::Lhost::Courier'], 'onbestelbaar' => ['Sisimai::Lhost::Office365'], 'permanent-delivery' => ['Sisimai::Lhost::X4'],