Subject: | recognise more challenge/response |
Recognise another challenge/response system.
Subject: | bounceparser2.diff |
diff -urN orig/Mail-DeliveryStatus-BounceParser-1.520/lib/Mail/DeliveryStatus/BounceParser.pm Mail-DeliveryStatus-BounceParser-1.520/lib/Mail/DeliveryStatus/BounceParser.pm
--- orig/Mail-DeliveryStatus-BounceParser-1.520/lib/Mail/DeliveryStatus/BounceParser.pm 2009-01-16 03:31:36.000000000 +0000
+++ Mail-DeliveryStatus-BounceParser-1.520/lib/Mail/DeliveryStatus/BounceParser.pm 2009-11-13 13:53:54.000000000 +0000
@@ -171,6 +171,15 @@
return $self;
}
+ {
+ last unless ($message->head->get("X-Bluebottle-Request") and $first_part->stringify_body =~ /This account is protected by Bluebottle/);
+ $self->log("looks like a challenge/response autoresponse; ignoring.");
+ $self->{type} = "Challenge / Response system autoreply";
+ $self->{is_bounce} = 0;
+ return $self;
+
+ }
+
# we'll deem autoreplies to be usually less than a certain size.
# Some vacation autoreplies are (sigh) multipart/mixed, with an additional
diff -urN orig/Mail-DeliveryStatus-BounceParser-1.520/t/bluebottle.t Mail-DeliveryStatus-BounceParser-1.520/t/bluebottle.t
--- orig/Mail-DeliveryStatus-BounceParser-1.520/t/bluebottle.t 1970-01-01 01:00:00.000000000 +0100
+++ Mail-DeliveryStatus-BounceParser-1.520/t/bluebottle.t 2009-11-13 13:48:13.000000000 +0000
@@ -0,0 +1,25 @@
+#!perl -wT
+use strict;
+
+use Test::More tests => 2;
+
+use Mail::DeliveryStatus::BounceParser;
+
+# Test parsing bluebottle Challlenge/Response
+
+# FH because we're being backcompat to pre-lexical
+sub readfile {
+ my $fn = shift;
+ open FH, "$fn" or die $!;
+ local $/;
+ my $text = <FH>;
+ close FH;
+ return $text;
+}
+
+my $message = readfile('t/corpus/bluebottle.msg');
+
+my $bounce = Mail::DeliveryStatus::BounceParser->new($message);
+
+isa_ok($bounce, 'Mail::DeliveryStatus::BounceParser');
+ok(!$bounce->is_bounce, "C/R messages are not bounces");
diff -urN orig/Mail-DeliveryStatus-BounceParser-1.520/t/corpus/bluebottle.msg Mail-DeliveryStatus-BounceParser-1.520/t/corpus/bluebottle.msg
--- orig/Mail-DeliveryStatus-BounceParser-1.520/t/corpus/bluebottle.msg 1970-01-01 01:00:00.000000000 +0100
+++ Mail-DeliveryStatus-BounceParser-1.520/t/corpus/bluebottle.msg 2009-11-13 13:55:22.000000000 +0000
@@ -0,0 +1,36 @@
+Delivered-To: automated-bounces@example.com
+Received: by 10.211.177.6 with SMTP id e6cs13058ebp;
+ Thu, 20 Aug 2009 05:15:43 -0700 (PDT)
+Received: by 10.224.50.81 with SMTP id y17mr7327504qaf.109.1250770541374;
+ Thu, 20 Aug 2009 05:15:41 -0700 (PDT)
+Return-Path: <support@bluebottle.com>
+Received: from bb0.bluebottle.com (bb0.bluebottle.com [206.188.25.5])
+ by mx.google.com with ESMTP id 26si2070556yxe.30.2009.08.20.05.15.39;
+ Thu, 20 Aug 2009 05:15:40 -0700 (PDT)
+Authentication-Results: mx.google.com; spf=pass (google.com: domain of support@bluebottle.com designates 206.188.25.5 as permitted sender) smtp.mail=support@bluebottle.com; domainkeys=pass header.From=exampleuser@bluebottle.com
+Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
+ by bb0.bluebottle.com (8.13.1/8.13.1) with ESMTP id n7KCFdp7026294
+ for <automated-bounces@example.com>; Thu, 20 Aug 2009 12:15:39 GMT
+Date: Thu, 20 Aug 2009 12:15:39 GMT
+Message-Id: <200908201215.n7KCFdp7026294@bb0.bluebottle.com>
+From: exampleuser@bluebottle.com
+To: automated-bounces@example.com
+Subject: RE: BLAH
+Content-Type: text/plain; charset=us-ascii
+X-Bluebottle-Request: <1234>
+X-Bluebottle-Address: <exampleuser@bluebottle.com>
+X-Bluebottle-Subject: BLAH
+X-Trusted-Delivery: <1234>
+
+Your message was received at Thu, 20 Aug 2009 12:15:39 +0000:
+
+To: exampleuser@bluebottle.com
+Subject: BLAH
+
+This account is protected by Bluebottle. Please click on the
+following link to have your address added to the recipient's allowed
+list and to ensure delivery of your email.
+
+http://www.bluebottle.com/verification/1234
+
+Bluebottle is a trademark of Bluebottle Solutions Pty Ltd