[Rt-commit] rt branch, 4.2-trunk, updated. rt-4.2.6-62-g1698512

Alex Vandiver alexmv at bestpractical.com
Wed Aug 27 12:44:58 EDT 2014


The branch, 4.2-trunk has been updated
       via  16985122b0386bdaee5fb5c02e0a0c905b770b65 (commit)
       via  793ed75c05d46167097104f9711ec08f929f79ce (commit)
       via  3ca5dc4a1cf59053df3270c935b02e1cbf70a763 (commit)
      from  a9407e7ffe7593a158dcbaa8b16a7631cbd0f467 (commit)

Summary of changes:
 lib/RT/Interface/Email.pm |  9 ++++-----
 t/mail/autogenerated.t    | 22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100644 t/mail/autogenerated.t

- Log -----------------------------------------------------------------
commit 3ca5dc4a1cf59053df3270c935b02e1cbf70a763
Author: Thomas Sibley <trsibley at uw.edu>
Date:   Mon Mar 24 10:35:44 2014 -0700

    Detect auto-generated mail correctly when there are multiple Precedence headers
    
    Example in the wild of multiple Precedence headers includes:
    
        Precedence: never-bounce
        Precedence: bulk
    
    When $head->get() is called in scalar context, only the first value is
    returned.  Instead, return true if any of the multiple possible values
    match.

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index facdb38..bcb78e1 100644
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -171,8 +171,7 @@ fields of the head in tests.
 sub CheckForAutoGenerated {
     my $head = shift;
 
-    my $Precedence = $head->get("Precedence") || "";
-    if ( $Precedence =~ /^(bulk|junk)/i ) {
+    if (grep { /^(bulk|junk)/i } $head->get_all("Precedence")) {
         return (1);
     }
 
diff --git a/t/mail/autogenerated.t b/t/mail/autogenerated.t
new file mode 100644
index 0000000..a37c9b1
--- /dev/null
+++ b/t/mail/autogenerated.t
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+
+use RT::Test tests => undef;
+use Email::Abstract;
+
+my $msg = Email::Abstract->new(<<'MSG')->cast("MIME::Entity");
+From: somebody at example.com
+To: rt at example.com
+Precedence: never-bounce
+Precedence: bulk
+Subject: testing precedence
+
+I am bulk mail, hear me roar!
+MSG
+
+ok RT::Interface::Email::CheckForAutoGenerated($msg->head), "Is AutoGenerated";
+
+$msg->head->delete("Precedence", 1);
+ok !RT::Interface::Email::CheckForAutoGenerated($msg->head), "Isn't AutoGenerated";
+
+done_testing;

commit 793ed75c05d46167097104f9711ec08f929f79ce
Author: Thomas Sibley <trsibley at uw.edu>
Date:   Mon Mar 24 14:14:58 2014 -0700

    Correct documentation of CheckForAutoGenerated() to include all headers

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index bcb78e1..a83136d 100644
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -162,9 +162,9 @@ sub CheckForSuspiciousSender {
 
 =head2 CheckForAutoGenerated HEAD
 
-Takes a HEAD object of L<MIME::Head> class and returns true if message
-is autogenerated. Checks 'Precedence' and 'X-FC-Machinegenerated'
-fields of the head in tests.
+Takes a HEAD object of L<MIME::Head> class and returns true if message is
+autogenerated. Checks C<Precedence>, C<Auto-Submitted>, and
+C<X-FC-Machinegenerated> fields of the head in tests.
 
 =cut
 

commit 16985122b0386bdaee5fb5c02e0a0c905b770b65
Merge: a9407e7 793ed75
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Aug 27 12:18:57 2014 -0400

    Merge 4.2/multiple-precedence into 4.2-trunk


-----------------------------------------------------------------------


More information about the rt-commit mailing list