You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2014/02/12 23:32:20 UTC
svn commit: r1567777 -
/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
Author: kmcgrail
Date: Wed Feb 12 22:32:19 2014
New Revision: 1567777
URL: http://svn.apache.org/r1567777
Log:
Added eval for testing a quoted printable ratio for spaminess
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm?rev=1567777&r1=1567776&r2=1567777&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm Wed Feb 12 22:32:19 2014
@@ -26,6 +26,7 @@ use Mail::SpamAssassin::Plugin;
use Mail::SpamAssassin::Locales;
use Mail::SpamAssassin::Constants qw(:sa CHARSETS_LIKELY_TO_FP_AS_CAPS);
use Mail::SpamAssassin::Util qw(untaint_var);
+use Mail::SpamAssassin::Logger;
use vars qw(@ISA);
@ISA = qw(Mail::SpamAssassin::Plugin);
@@ -50,6 +51,7 @@ sub new {
$self->register_eval_rule("check_for_uppercase");
$self->register_eval_rule("check_ma_non_text");
$self->register_eval_rule("check_base64_length");
+ $self->register_eval_rule("check_qp_ratio");
return $self;
}
@@ -342,6 +344,8 @@ sub _check_attachments {
if ($qp_bytes) {
$pms->{mime_qp_ratio} = $qp_count / $qp_bytes;
+ $pms->{mime_qp_count} = $qp_count;
+ $pms->{mime_qp_bytes} = $qp_bytes;
}
if ($pms->{mime_multipart_alternative}) {
@@ -372,6 +376,32 @@ sub _check_attachments {
}
}
+=item has_check_qp_ratio
+
+Adds capability check for "if can()" for check_qp_ratio
+
+=cut
+sub has_check_qp_ratio { 1 }
+
+=item check_qp_ratio
+
+Takes a min ratio to use in eval to see if there is an spamminess to the ratio of
+quoted printable to total bytes in an email.
+
+=cut
+sub check_qp_ratio {
+ my ($self, $pms, undef, $min) = @_;
+
+ $self->_check_attachments($pms) unless exists $pms->{mime_checked_attachments};
+
+ my $qp_ratio = $pms->{mime_qp_ratio};
+
+ dbg("eval: qp_ratio - %s - check for min of %s", $qp_ratio, $min);
+
+ return (defined $qp_ratio && $qp_ratio >= $min) ? 1 : 0;
+}
+
+
sub check_msg_parse_flags {
my($self, $pms, $type, $type2) = @_;
$type = $type2 if ref($type);