diff -rU 1 Mail-SpamAssassin-2.63/lib/Mail/SpamAssassin/EvalTests.pm Mail-SpamAssassin-2.63.new/lib/Mail/SpamAssassin/EvalTests.pm --- Mail-SpamAssassin-2.63/lib/Mail/SpamAssassin/EvalTests.pm 2004-01-17 23:56:08.000000000 +0000 +++ Mail-SpamAssassin-2.63.new/lib/Mail/SpamAssassin/EvalTests.pm 2004-05-06 22:10:49.000000000 +0100 @@ -1287,2 +1287,32 @@ +# check the body text for domain names. Strip out subdomains, and then +# submit to RBL. +use Tantrix::SLDfind; +my $domain_find_re = $Tantrix::SLDfind::domain_find_re; + +sub check_rbl_spamvertized_domains { + my ($self, $rule, $set, $rbl_server) = @_; + + return 0 if $self->{conf}->{skip_rbl_checks}; + return 0 unless $self->is_dns_available(); + + local $_; + my $bodytext = $self->get_decoded_body_text_array(); + my %domains; + for (@$bodytext) { + while (/(\S*?)($domain_find_re)/g) { + my ($pre, $match) = ($1, $2); + next if $pre =~ /\@$/; # email address + $domains{$match} = 1; + } + } + return unless scalar keys %domains; + + $self->load_resolver(); + for my $domain (keys %domains) { + $self->do_rbl_lookup($rule, $set, 'A', $rbl_server, "$domain.$rbl_server"); + } +} + + ########################################################################### diff -rU 1 Mail-SpamAssassin-2.63/rules/20_dnsbl_tests.cf Mail-SpamAssassin-2.63.new/rules/20_dnsbl_tests.cf --- Mail-SpamAssassin-2.63/rules/20_dnsbl_tests.cf 2004-01-17 23:56:13.000000000 +0000 +++ Mail-SpamAssassin-2.63.new/rules/20_dnsbl_tests.cf 2004-05-07 11:44:13.000000000 +0100 @@ -225 +225,8 @@ #tflags RCVD_IN_MAPS_OPS net + +# --------------------------------------------------------------------------- +# Tests for spamvertized domains in bodytext + +header SPAMVERTIZED_DOMAIN eval:check_rbl_spamvertized_domains('sdbl', 'sd.sdbl.org') +describe SPAMVERTIZED_DOMAIN Spamvertized domains in URLBL, http://sdbl.org/ +tflags SPAMVERTIZED_DOMAIN net diff -rU 1 Mail-SpamAssassin-2.63/t/data/spam/012 Mail-SpamAssassin-2.63.new/t/data/spam/012 --- Mail-SpamAssassin-2.63/t/data/spam/012 2004-05-07 11:49:23.000000000 +0100 +++ Mail-SpamAssassin-2.63.new/t/data/spam/012 2004-05-06 21:08:46.000000000 +0100 @@ -0,0 +1,46 @@ +From oemnsmogrotgv@yahoo.com.hk Thu May 06 18:16:20 2004 +Return-path: +Envelope-to: postmaster@swirl.com +Delivery-date: Thu, 06 May 2004 18:16:20 +0100 +Received: from [82.76.132.23] (helo=82-76-132-23.rdsnet.ro) + by mythix.realprogrammers.com with smtp (Exim 4.05-VA-mm1 #1 (Debian)) + id 1BLmTr-0002y2-00 + for postmaster@swirl.com; Thu, 06 May 2004 18:16:19 +0100 +X-Message-Info: 3UEXG2467RND_UC_CHAR[1-3]ocl08/HNZnWOFghEU66enBt88mIR +Received: from hugh ([194.40.75.216]) + by 95lt.adenine.prolate.calcine.hongkong.com + (InterMail vK.6.97.87.00 4-16-4-2-59719-541504) with ESMTP + id <16724466.MZQIV9143.hvub3-mail.mcgill.wylie.net.cable.rogers.com@conferee> + for ; Thu, 06 May 2004 14:10:43 -0400 +Message-ID: <58361RND_LC_CHAR[1-5]81yzzr$669963qoj61$8372eu822agy61@harcourt> +Reply-To: "Cecil " +From: "Cecil " +To: +Date: Thu, 06 May 2004 12:11:43 -0600 +MIME-Version: 1.0 +Subject: inland +Content-Type: multipart/alternative; + boundary="--102003051030209614" +Status: RO +Content-Length: 330 +Lines: 18 + +----102003051030209614 +Content-Type: text/plain; +Content-Transfer-Encoding: 7Bit + +Jaclyn '; + +The cablefilterz will allow you to receive + +all the channels that you order with your remote control,^ + +payperviews,aXXXmovies,sport events,special-events" + +http://www.9005hosting.com/cable/ + +malady ,convoke . + +----102003051030209614-- + + diff -rU 1 Mail-SpamAssassin-2.63/t/urlrbl.t Mail-SpamAssassin-2.63.new/t/urlrbl.t --- Mail-SpamAssassin-2.63/t/urlrbl.t 2004-05-07 11:49:16.000000000 +0100 +++ Mail-SpamAssassin-2.63.new/t/urlrbl.t 2004-05-06 22:13:14.000000000 +0100 @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use lib '.'; use lib 't'; +use SATest; sa_t_init("urlrbl"); +use Test; BEGIN { plan tests => 6 }; + +# --------------------------------------------------------------------------- + +%patterns = ( +q{ SPAMVERTIZED_DOMAIN } => 'SPAMVERTIZED_DOMAIN', +); + +%anti_patterns = ( +); + +sarun ("-t < data/spam/012", \&patterns_run_cb); +ok_all_patterns();