CC: | michael.stevens [...] dianomi.com,michael.smith [...] dianomi.com |
Subject: | Another user unknown case |
Another user unknown case.
http://gitorious.org/mail-deliverystatus-bounceparser-fork/mail-
deliverystatus-bounceparser-
fork/commit/3dfe974fddcceca9b6060b0963a87da18aba7896
Subject: | 3dfe974fddcceca9b6060b0963a87da18aba7896.patch.txt |
From 3dfe974fddcceca9b6060b0963a87da18aba7896 Mon Sep 17 00:00:00 2001
From: Michael Stevens <mstevens@etla.org>
Date: Thu, 9 Dec 2010 12:13:25 +0000
Subject: [PATCH] Add another user unknown.
---
MANIFEST | 1 +
lib/Mail/DeliveryStatus/BounceParser.pm | 3 +-
t/corpus/doesnotexist.msg | 99 +++++++++++++++++++++++++++++++
t/various-unknown.t | 8 ++-
4 files changed, 108 insertions(+), 3 deletions(-)
create mode 100644 t/corpus/doesnotexist.msg
diff --git a/MANIFEST b/MANIFEST
index 66c9d46..5789265 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -30,6 +30,7 @@ t/corpus/comcast-via-sendmail.unknown.msg
t/corpus/cox-via-sendmail.unknown.msg
t/corpus/deactivated-mailbox.msg
t/corpus/domino.unknown.msg
+t/corpus/doesnotexist.msg
t/corpus/exchange.unknown.msg
t/corpus/generic-postfix-via-sendmail.unknown.msg
t/corpus/gmail-via-sendmail.unknown.msg
diff --git a/lib/Mail/DeliveryStatus/BounceParser.pm b/lib/Mail/DeliveryStatus/BounceParser.pm
index b49ff2c..db8881d 100644
--- a/lib/Mail/DeliveryStatus/BounceParser.pm
+++ b/lib/Mail/DeliveryStatus/BounceParser.pm
@@ -980,7 +980,8 @@ sub _std_reason {
/<?$EMAIL_ADDR_REGEX>?\s+is\s+a\s+deactivated\s+mailbox/i or
/Recipient\s+does\s+not\s+exist\s+on\s+this\s+system/i or
/user\s+mail-box\s+not\s+found/i or
- /No\s+mail\s+box\s+available\s+for\s+this\s+user/i
+ /No\s+mail\s+box\s+available\s+for\s+this\s+user/i or
+ /User\s+\[\S+\]\s+does\s+not\s+exist/i
) {
return "user_unknown";
}
diff --git a/t/corpus/doesnotexist.msg b/t/corpus/doesnotexist.msg
new file mode 100644
index 0000000..b4d270d
--- /dev/null
+++ b/t/corpus/doesnotexist.msg
@@ -0,0 +1,99 @@
+Delivered-To: automated-bounces+a54577cc-02c9-11e0-8b82-1265dd31f8f5@email.example2.com
+Received: by 10.216.139.130 with SMTP id c2cs14202wej;
+ Wed, 8 Dec 2010 04:49:52 -0800 (PST)
+Received: by 10.227.28.228 with SMTP id n36mr8829100wbc.70.1291812592184;
+ Wed, 08 Dec 2010 04:49:52 -0800 (PST)
+Return-Path: <>
+Received: from server4.example2.co.uk (server4.example2.co.uk [94.236.45.212])
+ by mx.google.com with ESMTP id k3si793913wbx.29.2010.12.08.04.49.51;
+ Wed, 08 Dec 2010 04:49:52 -0800 (PST)
+Received-SPF: pass (google.com: best guess record for domain of server4.example2.co.uk designates 94.236.45.212 as permitted sender) client-ip=94.236.45.212;
+Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of server4.example2.co.uk designates 94.236.45.212 as permitted sender) smtp.mail=
+Received: by server4.example2.co.uk (Postfix)
+ id DDA011658177; Wed, 8 Dec 2010 12:49:51 +0000 (GMT)
+Date: Wed, 8 Dec 2010 12:49:51 +0000 (GMT)
+From: MAILER-DAEMON@server4.example2.co.uk (Mail Delivery System)
+Subject: Undelivered Mail Returned to Sender
+To: automated-bounces+A54577CC-02C9-11E0-8B82-1265DD31F8F5@email.example2.com
+Auto-Submitted: auto-replied
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+ boundary="9BAC016581C7.1291812591/server4.example2.co.uk"
+Content-Transfer-Encoding: 8bit
+Message-Id: <20101208124951.DDA011658177@server4.example2.co.uk>
+
+This is a MIME-encapsulated message.
+
+--9BAC016581C7.1291812591/server4.example2.co.uk
+Content-Description: Notification
+Content-Type: text/plain; charset=us-ascii
+
+This is the mail system at host server4.example2.co.uk.
+
+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
+
+<recipient@example.net>: host pop3.example.net[65.111.222.25] said: 550 User
+ [recipient@example.net] does not exist (in reply to RCPT TO command)
+
+--9BAC016581C7.1291812591/server4.example2.co.uk
+Content-Description: Delivery report
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; server4.example2.co.uk
+X-Postfix-Queue-ID: 9BAC016581C7
+X-Postfix-Sender: rfc822; automated-bounces+A54577CC-02C9-11E0-8B82-1265DD31F8F5@email.example2.com
+Arrival-Date: Wed, 8 Dec 2010 12:49:50 +0000 (GMT)
+
+Final-Recipient: rfc822; recipient@example.net
+Action: failed
+Status: 5.0.0
+Remote-MTA: dns; pop3.example.net
+Diagnostic-Code: smtp; 550 User [recipient@example.net] does not exist
+
+--9BAC016581C7.1291812591/server4.example2.co.uk
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+Content-Transfer-Encoding: 8bit
+
+Received: by server4.example2.co.uk (Postfix, from userid 507)
+ id 9BAC016581C7; Wed, 8 Dec 2010 12:49:50 +0000 (GMT)
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Type: multipart/alternative; boundary="_----------=_129181259010314528"
+X-Mailer: MIME::Lite 3.027 (F2.77; T1.28; A2.04; B3.08; Q3.08)
+Date: Wed, 8 Dec 2010 12:49:50 +0000
+From: Fred Bloggs <fred.bloggs@email.example2.com>
+Subject: foo
+X-Campaignid: example220101008.1
+List-Unsubscribe: <http://www.example2offers.co.uk/unsubscribe.epl?uuid=A54577CC-02C9-11E0-8B82-1265DD31F8F5>
+To: recipient <recipient@example.net>
+Message-Id: <20101208124950.9BAC016581C7@server4.example2.co.uk>
+
+This is a multi-part message in MIME format.
+
+--_----------=_129181259010314528
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain
+
+Text
+
+--_----------=_129181259010314528
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+Content-Type: text/html
+
+HTML
+
+--_----------=_129181259010314528--
+
+
+--9BAC016581C7.1291812591/server4.example2.co.uk--
diff --git a/t/various-unknown.t b/t/various-unknown.t
index 8ae4b41..32ec776 100644
--- a/t/various-unknown.t
+++ b/t/various-unknown.t
@@ -1,7 +1,7 @@
#!perl -wT
use strict;
-use Test::More tests => 144;
+use Test::More tests => 150;
use Mail::DeliveryStatus::BounceParser;
@@ -142,7 +142,11 @@ This is a permanent error; I've given up. Sorry it didn't work out.",
"nomailbox.msg" => {
"reason" => "550 ** No mail box available for this user **",
"smtp_code" => "550",
- }
+ },
+ "doesnotexist.msg" => {
+ "reason" => '550 User [recipient@example.net] does not exist',
+ "smtp_code" => "550",
+ },
);
foreach my $file (keys %files_and_responses) {
--
1.6.1