diff --git a/.github/workflows/codecovio.yml b/.github/workflows/codecovio.yml index afec7e52..93e67733 100644 --- a/.github/workflows/codecovio.yml +++ b/.github/workflows/codecovio.yml @@ -3,14 +3,16 @@ on: push: branches: ["5-stable"] pull_request: - branches: ["5-stable"] + branches: ["*"] jobs: codecov: runs-on: ubuntu-latest container: perl:latest steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.ref }} - name: Install modules run: cpanm --installdeps . - name: Install modules for the coverage diff --git a/.github/workflows/make-test.yml b/.github/workflows/make-test.yml index f24eef33..92b9185a 100644 --- a/.github/workflows/make-test.yml +++ b/.github/workflows/make-test.yml @@ -3,7 +3,7 @@ on: push: branches: ["5-stable"] pull_request: - branches: ["5-stable"] + branches: ["*"] jobs: test: name: Make Test with Perl ${{ matrix.perl }} @@ -14,7 +14,9 @@ jobs: perl: ["5.26", "5.38"] steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.ref }} - name: Setup Perl uses: shogo82148/actions-setup-perl@v1 with: diff --git a/lib/Sisimai/Lhost.pm b/lib/Sisimai/Lhost.pm index b9acb4d3..079d9b71 100644 --- a/lib/Sisimai/Lhost.pm +++ b/lib/Sisimai/Lhost.pm @@ -42,7 +42,7 @@ sub index { # @return [Array] MTA list with order return [qw| Activehunter Amavis AmazonSES AmazonWorkMail Aol ApacheJames Barracuda Bigfoot Biglobe Courier - Domino EZweb EinsUndEins Exchange2003 Exchange2007 Exim FML Facebook GMX GSuite GoogleGroups + Domino DragonFly EZweb EinsUndEins Exchange2003 Exchange2007 Exim FML Facebook GMX GSuite GoogleGroups Gmail IMailServer InterScanMSS KDDI MXLogic MailFoundry MailMarshalSMTP MailRu McAfee MessageLabs MessagingServer Notes Office365 OpenSMTPD Outlook Postfix PowerMTA ReceivingSES SendGrid Sendmail SurfControl V5sendmail Verizon X1 X2 X3 X4 X5 X6 Yahoo Yandex Zoho mFILTER qmail diff --git a/lib/Sisimai/Lhost/DragonFly.pm b/lib/Sisimai/Lhost/DragonFly.pm new file mode 100644 index 00000000..67df0bc9 --- /dev/null +++ b/lib/Sisimai/Lhost/DragonFly.pm @@ -0,0 +1,160 @@ +package Sisimai::Lhost::DragonFly; +use parent 'Sisimai::Lhost'; +use v5.26; +use strict; +use warnings; + +sub description { 'DragonFly' } +sub inquire { + # Detect an error from DMA: DragonFly Mail Agent + # @param [Hash] mhead Message headers of a bounce email + # @param [String] mbody Message body of a bounce email + # @return [Hash] Bounce data list and message/rfc822 part + # @return [undef] failed to parse or the arguments are missing + # @since v5.0.4 + my $class = shift; + my $mhead = shift // return undef; + my $mbody = shift // return undef; + + return undef unless index($mhead->{'subject'}, 'Mail delivery failed') > -1; + return undef unless grep { rindex($_, ' (DragonFly Mail Agent') > -1 } $mhead->{'received'}->@*; + + state $indicators = __PACKAGE__->INDICATORS; + state $boundaries = ['Original message follows.', 'Message headers follow']; + state $startingof = { + # https://github.com/corecode/dma/blob/ffad280aa40c242aa9a2cb9ca5b1b6e8efedd17e/mail.c#L84 + 'message' => ['This is the DragonFly Mail Agent '], + }; + state $messagesof = { + 'expired' => [ + # https://github.com/corecode/dma/blob/master/dma.c#L370C1-L374C19 + # dma.c:370| if (gettimeofday(&now, NULL) == 0 && + # dma.c:371| (now.tv_sec - st.st_mtim.tv_sec > MAX_TIMEOUT)) { + # dma.c:372| snprintf(errmsg, sizeof(errmsg), + # dma.c:373| "Could not deliver for the last %d seconds. Giving up.", + # dma.c:374| MAX_TIMEOUT); + # dma.c:375| goto bounce; + # dma.c:376| } + 'Could not deliver for the last ', + ], + 'hostunknown' => [ + # net.c:663| snprintf(errmsg, sizeof(errmsg), "DNS lookup failure: host %s not found", host); + 'DNS lookup failure: host ', + ], + }; + + my $dscontents = [__PACKAGE__->DELIVERYSTATUS]; + my $emailparts = Sisimai::RFC5322->part($mbody, $boundaries); + my $readcursor = 0; # (Integer) Points the current cursor position + my $recipients = 0; # (Integer) The number of 'Final-Recipient' header + my $v = undef; + + require Sisimai::Address; + require Sisimai::SMTP::Command; + + for my $e ( split("\n", $emailparts->[0]) ) { + # Read error messages and delivery status lines from the head of the email to the previous + # line of the beginning of the original message. + unless( $readcursor ) { + # Beginning of the bounce message or message/delivery-status part + $readcursor |= $indicators->{'deliverystatus'} if index($e, $startingof->{'message'}->[0]) == 0; + next; + } + next unless $readcursor & $indicators->{'deliverystatus'}; + next unless length $e; + + # This is the DragonFly Mail Agent v0.13 at df.example.jp. + # + # There was an error delivering your mail to . + # + # email.example.jp [192.0.2.25] did not like our RCPT TO: + # 552 5.2.2 : Recipient address rejected: Mailbox full + # + # Original message follows. + $v = $dscontents->[-1]; + + if( index($e, 'There was an error delivering your mail to <') == 0 ) { + # email.example.jp [192.0.2.25] did not like our RCPT TO: + # 552 5.2.2 : Recipient address rejected: Mailbox full + if( $v->{'recipient'} ) { + # There are multiple recipient addresses in the message body. + push @$dscontents, __PACKAGE__->DELIVERYSTATUS; + $v = $dscontents->[-1]; + } + $v->{'recipient'} = Sisimai::Address->s3s4(substr($e, index($e, '<'), -1)); + $recipients++; + + } else { + # Pick the error message + $v->{'diagnosis'} .= $e; + + # Pick the remote hostname, and the SMTP command + # net.c:500| snprintf(errmsg, sizeof(errmsg), "%s [%s] did not like our %s:\n%s", + next if index($e, ' did not like our ') < 0; + next if length $v->{'rhost'} > 0; + + my $p = [split(' ', $e, 3)]; + $v->{'rhost'} = index($p->[0], '.') > 1 ? $p->[0] : $p->[1]; + $v->{'command'} = Sisimai::SMTP::Command->find($e) || ''; + } + } + return undef unless $recipients; + + for my $e ( @$dscontents ) { + $e->{'diagnosis'} = Sisimai::String->sweep($e->{'diagnosis'}); + + SESSION: for my $r ( keys %$messagesof ) { + # Verify each regular expression of session errors + next unless grep { index($e->{'diagnosis'}, $_) > -1 } $messagesof->{ $r }->@*; + $e->{'reason'} = $r; + last; + } + } + return { 'ds' => $dscontents, 'rfc822' => $emailparts->[1] }; +} + +1; +__END__ + +=encoding utf-8 + +=head1 NAME + +Sisimai::Lhost::DragonFly - bounce mail parser class for C. + +=head1 SYNOPSIS + + use Sisimai::Lhost::DragonFly; + +=head1 DESCRIPTION + +C parses a bounce email which created by C. +Methods in the module are called from only C. + +=head1 CLASS METHODS + +=head2 C> + +C returns description string of this module. + + print Sisimai::Lhost::DragonFly->description; + +=head2 C, I)>> + +C method parses a bounced email and return results as an array reference. +See C for more details. + +=head1 AUTHOR + +azumakuniyuki + +=head1 COPYRIGHT + +Copyright (C) 2024 azumakuniyuki, All rights reserved. + +=head1 LICENSE + +This software is distributed under The BSD 2-Clause License. + +=cut + diff --git a/lib/Sisimai/Order.pm b/lib/Sisimai/Order.pm index dbbb65c4..727bb6e6 100644 --- a/lib/Sisimai/Order.pm +++ b/lib/Sisimai/Order.pm @@ -52,6 +52,7 @@ sub make { 'mail-could' => ['Sisimai::Lhost::InterScanMSS'], 'mail-delivery' => [ 'Sisimai::Lhost::Exim', + 'Sisimai::Lhost::DragonFly', 'Sisimai::Lhost::MailRu', 'Sisimai::Lhost::GMX', 'Sisimai::Lhost::EinsUndEins', diff --git a/lib/Sisimai/Reason/NoRelaying.pm b/lib/Sisimai/Reason/NoRelaying.pm index 138e312d..8e6ef5b9 100644 --- a/lib/Sisimai/Reason/NoRelaying.pm +++ b/lib/Sisimai/Reason/NoRelaying.pm @@ -20,6 +20,7 @@ sub match { 'insecure mail relay', 'is not permitted to relay through this server without authentication', 'mail server requires authentication when attempting to send to a non-local e-mail address', # MailEnable + 'no relaying', 'not a gateway', 'not allowed to relay through this machine', 'not an open relay, so get lost', diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-01.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-01.eml new file mode 100644 index 00000000..ef606970 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-01.eml @@ -0,0 +1,36 @@ +Received: from MAILER-DAEMON + id e0720 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:02:02 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:02:02 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +gmail-smtp-in.l.google.com [74.125.203.27] did not like our final DATA: +550-5.7.26 Unauthenticated email from example.jp is not accepted due to domain's +550-5.7.26 DMARC policy. Please contact the administrator of example.jp domain if +550-5.7.26 this was a legitimate mail. To learn about the DMARC initiative, go +550-5.7.26 to +550 5.7.26 https://support.google.com/mail/?p=DmarcRejection 98e67ed59e1d1-2c2d0e28189si6418580a91.13 - gsmtp + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e06d1 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:02:00 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:02:00 +0900 +Message-Id: <66681288.e06d1.3824794@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-02.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-02.eml new file mode 100644 index 00000000..9bcb6d78 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-02.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0720 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:04:02 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:04:02 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +outlook-com.olc.protection.outlook.com [52.101.42.17] did not like our final DATA: +550 5.7.509 Access denied, sending domain [DF.EXAMPLE.JP] does not pass DMARC verification and has a DMARC policy of reject. [TYCP286MB3363.JPNP286.PROD.OUTLOOK.COM 2024-06-11T09:04:02.679Z 08DC8850F12E1502] [MW4PR04CA0381.namprd04.prod.outlook.com 2024-06-11T09:04:02.743Z 08DC87B4931D8FD2] [CO1PEPF000066EC.namprd05.prod.outlook.com 2024-06-11T09:04:02.731Z 08DC89E7235090DB] + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e06d1 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:04:00 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:04:00 +0900 +Message-Id: <66681300.e06d1.6964aaf9@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-03.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-03.eml new file mode 100644 index 00000000..d979f6d8 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-03.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0720 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:09:35 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:09:35 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mta5.am0.yahoodns.net [67.195.204.79] did not like our final DATA: +554 5.7.9 Message not accepted for policy reasons. See https://senders.yahooinc.com/error-codes + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e06d1 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:09:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:09:33 +0900 +Message-Id: <6668144d.e06d1.1bdca37a@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-04.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-04.eml new file mode 100644 index 00000000..da875f98 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-04.eml @@ -0,0 +1,31 @@ +Received: from MAILER-DAEMON + id e0724 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:15:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:15:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +DNS lookup failure: host cx.libsisimai.org not found + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0722 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:15:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:15:33 +0900 +Message-Id: <666815b5.e0722.4e479ce6@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-05.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-05.eml new file mode 100644 index 00000000..40ac504e --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-05.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0724 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:17:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:17:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.26 : Recipient address rejected: Multiple authentication checks failed + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0722 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:17:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:17:33 +0900 +Message-Id: <6668162d.e0722.3a6a6f36@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-06.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-06.eml new file mode 100644 index 00000000..6e255697 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-06.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:21:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:21:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.25 : Recipient address rejected: Reverse DNS validation failed: See https://libsisimai.org/en/reason/#blocked + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0724 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:21:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:21:33 +0900 +Message-Id: <6668171d.e0724.4a78d49a@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-07.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-07.eml new file mode 100644 index 00000000..e984055b --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-07.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:23:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:23:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.6.0 : Recipient address rejected: Media error. See https://libsisimai.org/en/reason/#contenterror + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0724 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:23:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:23:33 +0900 +Message-Id: <66681795.e0724.764d9012@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-08.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-08.eml new file mode 100644 index 00000000..54527ee6 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-08.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:25:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:25:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +552 5.2.3 : Recipient address rejected: Message length exceeds administrative limit. See https://libsisimai.org/en/reason/#exceedlimit + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0724 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:25:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:25:33 +0900 +Message-Id: <6668180d.e0724.7c2abac3@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-09.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-09.eml new file mode 100644 index 00000000..7dcb6d4b --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-09.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:29:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:29:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.2.1 : Recipient address rejected: User unknown. See https://libsisimai.org/en/reason/#filtered + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:29:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:29:33 +0900 +Message-Id: <666818fd.e0726.7e456d07@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-10.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-10.eml new file mode 100644 index 00000000..2aaf9bf0 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-10.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:31:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:31:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.1.6 : Recipient address rejected: Destination mailbox has moved, No forwarding address. See https://libsisimai.org/en/reason/#hasmoved + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:31:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:31:33 +0900 +Message-Id: <66681975.e0726.7dcedb39@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-11.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-11.eml new file mode 100644 index 00000000..4026175f --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-11.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:33:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:33:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.1.2 : Recipient address rejected: Bad destination system address. See https://libsisimai.org/en/reason/#hostunknown + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:33:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:33:33 +0900 +Message-Id: <666819ed.e0726.115fa400@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-12.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-12.eml new file mode 100644 index 00000000..4fe360f1 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-12.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:35:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:35:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +552 5.2.2 : Recipient address rejected: Mailbox full. See https://libsisimai.org/en/reason/#mailboxfull + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:35:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:35:33 +0900 +Message-Id: <66681a65.e0726.29ed079c@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-13.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-13.eml new file mode 100644 index 00000000..baeb881e --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-13.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:37:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:37:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +554 5.3.0 : Recipient address rejected: Mailer error. See https://libsisimai.org/en/reason/#mailererror + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:37:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:37:33 +0900 +Message-Id: <66681add.e0726.72bc0b4c@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-14.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-14.eml new file mode 100644 index 00000000..d8602e3c --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-14.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:39:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:39:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +554 5.3.4 : Recipient address rejected: Message too big for system. See https://libsisimai.org/en/reason/#mesgtoobig + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0726 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:39:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:39:33 +0900 +Message-Id: <66681b55.e0726.3201b1e4@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-15.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-15.eml new file mode 100644 index 00000000..d7030699 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-15.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:43:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:43:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.0 : Recipient address rejected: No relaying. See https://libsisimai.org/en/reason/#norelaying + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:43:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:43:33 +0900 +Message-Id: <66681c45.e0728.e963bd9@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-16.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-16.eml new file mode 100644 index 00000000..6b76946f --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-16.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:45:33 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:45:33 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +521 5.3.2 : Recipient address rejected: System not accepting network messages. See https://libsisimai.org/en/reason/#notaccept + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:45:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:45:33 +0900 +Message-Id: <66681cbd.e0728.29f828c0@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-17.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-17.eml new file mode 100644 index 00000000..63966b74 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-17.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:47:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:47:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.0.0 : Recipient address rejected: On hold. See https://libsisimai.org/en/reason/#onhold + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:47:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:47:33 +0900 +Message-Id: <66681d35.e0728.180b873f@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-18.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-18.eml new file mode 100644 index 00000000..e699a98a --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-18.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:49:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:49:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.0 : Recipient address rejected: Policy violation. See https://libsisimai.org/en/reason/#policyviolation + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0728 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:49:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:49:33 +0900 +Message-Id: <66681dad.e0728.6b657381@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-19.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-19.eml new file mode 100644 index 00000000..f0decdec --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-19.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072c + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:53:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:53:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +551 5.7.1 : Recipient address rejected: Delivery not authorized. See https://libsisimai.org/en/reason/#securityerror + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:53:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:53:33 +0900 +Message-Id: <66681e9d.e072a.9c343d6@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-20.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-20.eml new file mode 100644 index 00000000..6db40dec --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-20.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072c + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:55:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:55:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.0 : Recipient address rejected: Spam detected. See https://libsisimai.org/en/reason/#spamdetected + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e072a + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:55:33 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:55:33 +0900 +Message-Id: <66681f15.e072a.19d854c3@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-21.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-21.eml new file mode 100644 index 00000000..22a8dbfb --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-21.eml @@ -0,0 +1,33 @@ +Received: from MAILER-DAEMON + id e072e + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:59:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 18:59:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +525 5.7.13 : Recipient address rejected: User account disabled. See https://libsisimai.org/en/reason/#suspend + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e072c + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 18:59:34 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 18:59:34 +0900 +Message-Id: <66682006.e072c.184b1dc1@df.example.jp> +From: + + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-22.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-22.eml new file mode 100644 index 00000000..e85e0f04 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-22.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072e + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:01:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 19:01:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +501 5.1.3 : Recipient address rejected: Bad destination mailbox address syntax. See https://libsisimai.org/en/reason/#syntaxerror + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e072c + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:01:34 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 19:01:34 +0900 +Message-Id: <6668207e.e072c.4296cb8d@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-23.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-23.eml new file mode 100644 index 00000000..e4b6c9f8 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-23.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e072e + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:03:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 19:03:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +554 5.3.0 : Recipient address rejected: Internal system error. See https://libsisimai.org/en/reason/#systemerror + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e072c + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:03:34 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 19:03:34 +0900 +Message-Id: <666820f6.e072c.44bd3f67@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-24.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-24.eml new file mode 100644 index 00000000..246e2061 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-24.eml @@ -0,0 +1,32 @@ +Received: from MAILER-DAEMON + id e0734 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:11:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 19:11:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.1.1 : Recipient address rejected: User unknown. See https://libsisimai.org/en/reason/#userunknown + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0732 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:11:34 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 19:11:34 +0900 +Message-Id: <666822d6.e0732.f6410e7@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-25.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-25.eml new file mode 100644 index 00000000..51f08190 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-25.eml @@ -0,0 +1,33 @@ +From MAILER-DAEMON Tue Jun 11 19:13:34 2024 +Received: from MAILER-DAEMON + id e0734 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:13:34 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Tue, 11 Jun 2024 19:13:34 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mail-inbound.libsisimai.net [192.0.2.25] did not like our RCPT TO: +550 5.7.0 : Recipient address rejected: Virus detected. See https://libsisimai.org/en/reason/#virusdetected + +Message headers follow. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0732 + by df.example.jp (DragonFly Mail Agent v0.13); + Tue, 11 Jun 2024 19:13:34 +0900 +Subject: Nyaan 01 +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Tue, 11 Jun 2024 19:13:34 +0900 +Message-Id: <6668234e.e0732.58e0b9ce@df.example.jp> +From: + diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-26.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-26.eml new file mode 100644 index 00000000..67a1d25a --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-26.eml @@ -0,0 +1,33 @@ +Received: from MAILER-DAEMON + id e071e + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 08:46:42 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: kijitora@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Wed, 12 Jun 2024 08:46:42 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +mbox.example.org [192.0.2.25] did not like our RCPT TO: +550 5.1.1 : Recipient address rejected: User unknown + +Original message follows. + +Received: from root (uid 0) + (envelope-from kijitora@df.example.jp) + id e0003 + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 08:46:42 +0900 +Subject: Nyaan ? +To: nekochan +User-Agent: mail (GNU Mailutils 3.14) +Date: Wed, 12 Jun 2024 08:46:42 +0900 +Message-Id: <6668e1e2.e0003.9b9b713@df.example.jp> +From: + +df.example.jp diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-27.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-27.eml new file mode 100644 index 00000000..03d735d3 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-27.eml @@ -0,0 +1,47 @@ +Return-Path: <> +X-Original-To: postmaster@df.example.jp +Received: from df.example.jp (unknown [203.0.113.25]) + by email.example.org (Postfix) with ESMTP id 4VzRlY2BnYz22WHV + for ; Wed, 12 Jun 2024 09:50:01 +0900 (JST) +Authentication-Results: email.example.org; arc=none smtp.client-ip=203.0.113.25 +ARC-Seal:i=1; a=rsa-sha256; d=example.org; s=df0000; t=1718153401; cv=none; + b=Aa6dx2aZWbc5+HHP6GWRuTDksoDILYe1Qag6nc+HMVzSq/Sunfl+sCRgKyuTMchQAV5BFf8WrNpMsUBRu1aWdrA16kNnti34GrB4OaAnzb93OOBLNAwPFJsBcmsGb4iFhF0kw2msFspIsx1E9cyZVbuRx5VPjCGYfQDrYhcx1vzohckRfs8YbUBKsvC67vGk0MlXMIOHm/ayXCwDtMHtwun0aEtW9KU6V5vKY33ByWnIi8mCQc3jim8dA76VRhc9VEjkN6wiyhdzyWugtUKPMfI2IYVizik5z6Ef1DezZTXBF8mxMrWR+Tlzt5kxzqD/F8SG8sxjJ0Vq8clVNN4QCQ== +ARC-Message-Signature:i=1; a=rsa-sha256; d=example.org; s=df0000; + t=1718153401; c=relaxed/relaxed; + bh=qtLe3nGOhauxLg043qtKLg2CSSeMsLKUMouV9O9TU+c=; + h=Received:X-Original-To:From:To:Subject:Message-Id:Date; b=gPtPLENgBo56g3Lf+H7Tq5ESLC7YDUC/B3HZs0Sp7OaCNKMx7HspKwsrmk6RMlLt1RMAeYrQllhhoE8KGjuEwI+nQnur0BrOGgYqBqv3Q16iKBZvXecpRv8bptXt1xc/mkyE4AzkFS49N7qEKtTEEVLyOiIBH7+hP3OWRptOvLudSNAtDt8WyYO5ztKiDEGiJeFrV9JPevpTejVYGDikes7qoywsM0Q7a8lE4LU7XFj/6dD0NiS5+lIxdprixDSnrhdG+v8Tolks1VU+BwV3xlz7heP+xfuphdhy7TOYMfVIhEV3taUThFd2D8RKHkcGp2ksR9XTL44qYaQy43gMPQ== +ARC-Authentication-Results:i=1; email.example.org; dkim=permerror (bad message/signature format); arc=none smtp.client-ip=203.0.113.25 +Authentication-Results:email.example.org; dkim=permerror (bad message/signature format) +Received: from MAILER-DAEMON + id e071e + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 09:39:51 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: postmaster@df.example.jp +Subject: Mail delivery failed +Message-Id: +Date: Wed, 12 Jun 2024 09:39:51 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +email.example.org [192.0.2.25] did not like our RCPT TO: +525 5.7.13 : Recipient address rejected: Disabled recipient address + +Original message follows. + +Received: from root (uid 0) + (envelope-from postmaster@df.example.jp) + id e0003 + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 09:39:51 +0900 +Subject: Nyaan? +To: +User-Agent: mail (GNU Mailutils 3.14) +Date: Wed, 12 Jun 2024 09:39:51 +0900 +Message-Id: <6668ee57.e0003.59d8306d@df.example.jp> +From: + +df.example.jp diff --git a/set-of-emails/maildir/bsd/lhost-dragonfly-28.eml b/set-of-emails/maildir/bsd/lhost-dragonfly-28.eml new file mode 100644 index 00000000..4b9ef215 --- /dev/null +++ b/set-of-emails/maildir/bsd/lhost-dragonfly-28.eml @@ -0,0 +1,47 @@ +Return-Path: <> +X-Original-To: postmaster@example.jp +Received: from df.example.jp (unknown [203.0.113.25]) + by email.example.jp (Postfix) with ESMTP id 4VzSm22Fq6z22WHr + for ; Wed, 12 Jun 2024 10:35:30 +0900 (JST) +Authentication-Results: email.example.jp; arc=none smtp.client-ip=203.0.113.25 +ARC-Seal:i=1; a=rsa-sha256; d=example.jp; s=df0000; t=1718156130; cv=none; + b=LYheUbwAQZx+UTra1Gq61WKiKaaBte76ziws00qhCWtiVZShnx4uzqdaQgrBrIJ4F6+SzWXlh9Ar7nlZr/+P7NxdlLDRhS4kbAsbEwp32hoM08aOYAu6uvE5V+tvz1Hsx/1/enoF4RzUPTdFdIAsIAu/QLPQl11yeSvgE10mU9RhmhgC0jubuDNrYraPvKt6XhP79cqByU8Vp+8yv5Sf/QwK7zoYdQYl1LkeuA6iBdDjmqgDwmvggtD785Dw/3td3NYqhUEe7W5q21VapqDbAKyrxQ86B5hXTLkbhRkTkiPCqfKD8900nGCAzeRgLGJuS5P4NC0zpVFhzkINJPnaDQ== +ARC-Message-Signature:i=1; a=rsa-sha256; d=example.jp; s=df0000; + t=1718156130; c=relaxed/relaxed; + bh=rC1R89/fFYo+5Zu9UyyVZZPF58MZntYNYclZPMuSAro=; + h=Received:X-Original-To:From:To:Subject:Message-Id:Date; b=KtTXoPQ2AuJxILrKm9XA3jmFGCiW4xLMfVE4THSe+oGRt9y+CIf+VK1Beg9t0FX4+yyb/YTz1DIOJabb3J0J3Ge0gSNgTd//u2YHgVZY0EjYCXiZ4WEcDyvxkkJr+nLynFND0ul1MumG5a5bIldDptSHOWhCAgNk50wZXMlFNBWZ2LZCudOXxnOW49deqG7EPvmltB4Jo1wY7bcpAsYz3BMtSPTkyDGnOtJfMgyayfbh/YlHSRl8YMztUh4YU3b9+tWJlSR0rFvJ7Mum/SqsibxaH8uM+YWtikP2trteCL6fQVFfYP8+L7sPWQQBYrMZ5xf6kZegh4h91D1Fe5g85Q== +ARC-Authentication-Results:i=1; email.example.jp; dkim=permerror (bad message/signature format); arc=none smtp.client-ip=203.0.113.25 +Authentication-Results:email.example.jp; dkim=permerror (bad message/signature format) +Received: from MAILER-DAEMON + id e076e + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 10:35:30 +0900 +X-Original-To: +From: MAILER-DAEMON <> +To: postmaster@example.jp +Subject: Mail delivery failed +Message-Id: +Date: Wed, 12 Jun 2024 10:35:30 +0900 + +This is the DragonFly Mail Agent v0.13 at df.example.jp. + +There was an error delivering your mail to . + +email.example.jp [192.0.2.25] did not like our RCPT TO: +552 5.2.2 : Recipient address rejected: Mailbox full + +Original message follows. + +Received: from root (uid 0) + (envelope-from postmaster@example.jp) + id e0003 + by df.example.jp (DragonFly Mail Agent v0.13); + Wed, 12 Jun 2024 10:35:30 +0900 +Subject: Nyaan? +To: nekochan +User-Agent: mail (GNU Mailutils 3.14) +Date: Wed, 12 Jun 2024 10:35:30 +0900 +Message-Id: <6668fb62.e0003.6977ecf3@df.example.jp> +From: + +df.example.jp diff --git a/t/022-mail-maildir.t b/t/022-mail-maildir.t index ea347fb0..3fcffc95 100644 --- a/t/022-mail-maildir.t +++ b/t/022-mail-maildir.t @@ -8,7 +8,7 @@ my $Methods = { 'class' => ['new'], 'object' => ['path', 'dir', 'file', 'size', 'offset', 'handle', 'read'], }; -my $MaildirSize = 536; +my $MaildirSize = 564; my $SampleEmail = './set-of-emails/maildir/bsd'; my $NewInstance = $Package->new($SampleEmail); diff --git a/t/641-lhost-dragonfly.t b/t/641-lhost-dragonfly.t new file mode 100644 index 00000000..7c654a79 --- /dev/null +++ b/t/641-lhost-dragonfly.t @@ -0,0 +1,43 @@ +use strict; +use warnings; +use Test::More; +use lib qw(./lib ./blib/lib); +require './t/600-lhost-code'; + +my $enginename = 'DragonFly'; +my $enginetest = Sisimai::Lhost::Code->makeinquiry; +my $isexpected = { + # INDEX => [['D.S.N.', 'replycode', 'REASON', 'hardbounce'], [...]] + '01' => [['5.7.26', '550', 'authfailure', 0]], + '02' => [['5.7.509', '550', 'authfailure', 0]], + '03' => [['5.7.9', '554', 'policyviolation', 0]], + '04' => [['5.0.912', '', 'hostunknown', 1]], + '05' => [['5.7.26', '550', 'authfailure', 0]], + '06' => [['5.7.25', '550', 'requireptr', 0]], + '07' => [['5.6.0', '550', 'contenterror', 0]], + '08' => [['5.2.3', '552', 'exceedlimit', 0]], + '09' => [['5.2.1', '550', 'userunknown', 1]], + '10' => [['5.1.6', '550', 'hasmoved', 1]], + '11' => [['5.1.2', '550', 'hostunknown', 1]], + '12' => [['5.2.2', '552', 'mailboxfull', 0]], + '13' => [['5.3.0', '554', 'mailererror', 0]], + '14' => [['5.3.4', '554', 'mesgtoobig', 0]], + '15' => [['5.7.0', '550', 'norelaying', 0]], + '16' => [['5.3.2', '521', 'notaccept', 1]], + '17' => [['5.0.0', '550', 'onhold', 0]], + '18' => [['5.7.0', '550', 'securityerror', 0]], + '19' => [['5.7.1', '551', 'securityerror', 0]], + '20' => [['5.7.0', '550', 'spamdetected', 0]], + '21' => [['5.7.13', '525', 'suspend', 0]], + '22' => [['5.1.3', '501', 'userunknown', 1]], + '23' => [['5.3.0', '554', 'systemerror', 0]], + '24' => [['5.1.1', '550', 'userunknown', 1]], + '25' => [['5.7.0', '550', 'virusdetected', 0]], + '26' => [['5.1.1', '550', 'userunknown', 1]], + '27' => [['5.7.13', '525', 'suspend', 0]], + '28' => [['5.2.2', '552', 'mailboxfull', 0]], +}; + +$enginetest->($enginename, $isexpected); +done_testing; + diff --git a/t/900-modules.pl b/t/900-modules.pl index 2c3247ed..b6670c40 100644 --- a/t/900-modules.pl +++ b/t/900-modules.pl @@ -20,6 +20,7 @@ sub list { Lhost/Biglobe.pm Lhost/Courier.pm Lhost/Domino.pm + Lhost/DragonFly.pm Lhost/EinsUndEins.pm Lhost/Exchange2003.pm Lhost/Exchange2007.pm diff --git a/xt/641-lhost-dragonfly.t b/xt/641-lhost-dragonfly.t new file mode 100644 index 00000000..90dba6a1 --- /dev/null +++ b/xt/641-lhost-dragonfly.t @@ -0,0 +1,18 @@ +use strict; +use warnings; +use Test::More; +use lib qw(./lib ./blib/lib); +require './t/600-lhost-code'; + +my $enginename = 'DragonFly'; +my $samplepath = sprintf("./set-of-emails/private/lhost-%s", lc $enginename); +my $enginetest = Sisimai::Lhost::Code->makeinquiry; +my $isexpected = { + # INDEX => [['D.S.N.', 'replycode', 'REASON', 'hardbounce'], [...]] + '01001' => [['5.7.26', '550', 'authfailure', 0]], +}; + +plan 'skip_all', sprintf("%s not found", $samplepath) unless -d $samplepath; +$enginetest->($enginename, $isexpected, 1, 0); +done_testing; +