Mail-SpamAssassin

 view release on metacpan or  search on metacpan

build/convert_pods_to_doc  view on Meta::CPAN


use Pod::Html;
use Pod::Text ();

my $header = <<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Apache SpamAssassin documentation</title>
<link rel="stylesheet" href="/assets/docs.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

<body>

<h2>Mail::SpamAssassin - Spam detector and markup engine</h2>
<pre>
EOF

my $footer = <<EOF;
</pre>

lib/Mail/SpamAssassin/Message.pm  view on Meta::CPAN

      my $num = $start-$cnt;
      if ($num > $max_blank_lines) {
        splice @message, $cnt+2, $num-$max_blank_lines;
      }
      undef $start;
    }
  }

  # Figure out the boundary
  my ($boundary);
  ($self->{'type'}, $boundary) = Mail::SpamAssassin::Util::parse_content_type($self->header('content-type'));
  dbg("message: main message type: ".$self->{'type'});

#  dbg("message: \$message[0]: \"" . $message[0] . "\"");

  # bug 6845: if main message type is multipart and the message body does not begin with
  # either a blank line or the boundary (if defined), insert a blank line
  # to ensure proper parsing - do not consider MIME headers at the beginning of the body
  # to be part of the message headers.
  if (index($self->{'type'}, 'multipart/') == 0 && $#message > 0 && $message[0] =~ /\S/)
  {

lib/Mail/SpamAssassin/Message.pm  view on Meta::CPAN


# ---------------------------------------------------------------------------

=item find_parts()

Used to search the tree for specific MIME parts.  See
I<Mail::SpamAssassin::Message::Node> for more details.

=cut

# Used to find any MIME parts whose simple content-type matches a given regexp
# Searches it's own and any children parts.  Returns an array of MIME
# objects which match.
#
sub find_parts {
  my $self = shift;

  # ok, we need to do the parsing now...
  $self->parse_body() if (exists $self->{'parse_queue'});

  # and pass through to the Message::Node version of the method

lib/Mail/SpamAssassin/Message.pm  view on Meta::CPAN

        chomp( $part_array->[-1] );  # trim the CRLF that's part of the boundary
        splice @{$part_array}, -1 if ( $part_array->[-1] eq '' ); # blank line for the boundary only ...
      }
      else {
        # Invalid parts can have no body, so fake in a blank body
	# in that case.
        $part_array = [];
      }

      ($part_msg->{'type'}, my $p_boundary, undef, undef, my $ct_was_missing) =
          Mail::SpamAssassin::Util::parse_content_type($part_msg->header('content-type'));

      # bug 5741: if ct was missing and parent == multipart/digest, then
      # type should be set as message/rfc822
      if ($ct_was_missing) {
        if ($msg->{'type'} eq 'multipart/digest') {
          dbg("message: missing type, setting multipart/digest child as message/rfc822");
          $part_msg->{'type'} = 'message/rfc822';
        } else {
          dbg("message: missing type, setting as default text/plain");
        }

lib/Mail/SpamAssassin/Message.pm  view on Meta::CPAN

      }
      elsif (/^[ \t]/ && $header) {
        # $_ =~ s/^\s*//;   # bug 5127, again
        $header .= $_;
	next;
      }
      else {
        if ($header) {
          my ( $key, $value ) = split ( /:\s*/, $header, 2 );
          $part_msg->header( $key, $value );
          if (defined $boundary && lc $key eq 'content-type') {
	    my (undef, $nested_bound) = Mail::SpamAssassin::Util::parse_content_type($part_msg->header('content-type'));
            if (defined $nested_bound && $nested_bound eq $boundary) {
       	      $nested_boundary = 1;
            }
          }
        }
        $in_body = 1;

	# if there's a blank line separator, that's good.  if there isn't,
	# it's a body line, so drop through.
	if (/^\r?$/) {

lib/Mail/SpamAssassin/Message.pm  view on Meta::CPAN


=cut

sub _parse_normal {
  my($self, $toparse) = @_;

  my ($msg, $boundary, $body) = @{$toparse};

  dbg("message: parsing normal part");

  # 0: content-type, 1: boundary, 2: charset, 3: filename 4: ct_missing
  my @ct = Mail::SpamAssassin::Util::parse_content_type($msg->header('content-type'));

  # multipart sections are required to have a boundary set ...  If this
  # one doesn't, assume it's malformed and revert to text/plain
  # bug 5741: don't overwrite the default type assigned by _parse_multipart()
  if (!$ct[4]) {
    $msg->{'type'} = (index($ct[0], 'multipart/') != 0 || defined $boundary) ?
      $ct[0] : 'text/plain'
  } else {
    dbg("message: missing type, setting previous multipart type: %s", $msg->{'type'});
  }
  $msg->{'charset'} = $ct[2];

  # parse content-disposition header
  if ( my $disp = $msg->header('content-disposition') ) {
    $disp = Mail::SpamAssassin::Header::ParameterHeader->new($disp);
    $msg->{'disposition'} = $disp->value();
    $msg->{'name'} = $disp->parameter('filename');
  }
  # if the content-disposition header doesn't have a filename, try to get
  # the filename from the content-type header
  $msg->{'name'} = $ct[3] unless defined $msg->{'name'};

  $msg->{'boundary'} = $boundary;

  # If the part type is not one that we're likely to want to use, go
  # ahead and write the part data out to a temp file -- why keep sucking
  # up RAM with something we're not going to use?
  #
  my $type = $msg->effective_type();
  unless ($type eq 'text/plain' || $type eq 'text/html' ||

lib/Mail/SpamAssassin/Message/Node.pm  view on Meta::CPAN

Only_leaves - By default, find_parts() will return any part that matches
the regexp, including multipart.  If you only want to see leaves of the
tree (ie: parts that aren't multipart), set this to true (1).

Recursive - By default, when find_parts() finds a multipart which has
parts underneath it, it will recurse through all sub-children.  If set to 0,
only look at the part and any direct children of the part.

=cut

# Used to find any MIME parts whose simple content-type matches a given regexp
# Searches it's own and any children parts.  Returns an array of MIME
# objects which match.  Our callers may expect the default behavior which is a
# depth-first array of parts.
#
sub find_parts {
  my ($self, $re, $onlyleaves, $recursive) = @_;

  # Didn't pass an RE?  Just abort.
  return () unless defined $re && $re ne '';

lib/Mail/SpamAssassin/Plugin/AntiVirus.pm  view on Meta::CPAN


sub _check_attachments {
  my ($self, $pms) = @_;

  $pms->{antivirus_microsoft_exe} = 0;
  $pms->{antivirus_suspect_name} = 0;

  # MICROSOFT_EXECUTABLE triggered here
  foreach my $p ($pms->{msg}->find_parts(qr/./, 1)) {
    my ($ctype, $boundary, $charset, $name) =
      Mail::SpamAssassin::Util::parse_content_type($p->get_header('content-type'));

    $name = lc($name || '');

    my $cte = lc($p->get_header('content-transfer-encoding') || '');
    $ctype = lc $ctype;

    if ($name && $name =~ /\.(?:ade|adp|asx|bas|bat|chm|cmd|com|cpl|crt|dll|exe|hlp|hta|inf|ins|isp|js|jse|lnk|mda|mdb|mde|mdt|mdw|mdz|msc|msi|msp|mst|nws|ops|pcd|pif|prf|reg|scf|scr\??|sct|shb|shs|shm|swf|url|vb|vbe|vbs|vbx|vxd|wsc|wsf|wsh)$/)
    {
      # file extension indicates an executable
      $pms->{antivirus_microsoft_exe} = 1;

lib/Mail/SpamAssassin/Plugin/MIMEEval.pm  view on Meta::CPAN

  # $pms->{mime_qp_illegal} = 0;
  # $pms->{mime_qp_inline_no_charset} = 0;
  $pms->{mime_qp_long_line} = 0;
  $pms->{mime_qp_ratio} = 0;
  $pms->{mime_ascii_text_illegal} = 0;
  $pms->{mime_text_unicode_ratio} = 0;

  # Get all parts ...
  foreach my $p ($pms->{msg}->find_parts(qr/./)) {
    # message headers
    my ($ctype, $boundary, $charset, $name) = Mail::SpamAssassin::Util::parse_content_type($p->get_header("content-type"));

    if ($ctype eq 'multipart/alternative') {
      $pms->{mime_multipart_alternative} = 1;
    }

    my $cte = $p->get_header('Content-Transfer-Encoding') || '';
    chomp($cte = defined($cte) ? lc $cte : "");

    my $cd = $p->get_header('Content-Disposition') || '';
    chomp($cd = defined($cd) ? lc $cd : "");

lib/Mail/SpamAssassin/Plugin/MIMEEval.pm  view on Meta::CPAN

}

sub _check_base64_length {
  my $self = shift;
  my $msg = shift;

  my $result = 0;

  foreach my $p ($msg->find_parts(qr@.@, 1)) {
    my $ctype=
      Mail::SpamAssassin::Util::parse_content_type($p->get_header('content-type'));

    # FPs from Google Calendar invites, etc.
    # perhaps just limit to test, and image?
    next if ($ctype eq 'application/ics');

    my $cte = lc($p->get_header('content-transfer-encoding') || '');
    next if ($cte !~ /^base64$/);
    foreach my $l ( @{$p->raw()} ) {
      $result = length $l  if length $l > $result;
    }

lib/Mail/SpamAssassin/Util.pm  view on Meta::CPAN

  # Net::DNS provides a query in encoded RFC 1035 zone file format, decode it!
  $qname =~ s{ \\ ( [0-9]{3} | (?![0-9]{3}) . ) }
             { length($1)==3 && $1 <= 255 ? chr($1) : $1 }xgse;
  return ($q->qclass, $q->qtype, $qname);
}

###########################################################################

sub parse_content_type {
  # This routine is typically called by passing a
  # get_header("content-type") which passes all content-type headers
  # (array context).  If there are multiple Content-type headers (invalid,
  # but it happens), MUAs seem to take the last one and so that's what we
  # should do here.
  #
  my $missing; # flag missing content-type, even though we force it text/plain
  my $ct = $_[-1] || do { $missing = 1; 'text/plain; charset=us-ascii' };

  my $header = Mail::SpamAssassin::Header::ParameterHeader->new($ct);
  my $boundary = $header->parameter('boundary');
  my $charset = $header->parameter('charset');
  my $name = $header->parameter('name');
  $ct = $header->value();
  $ct =~ s@^([^/]+(?:/[^/\s]*)?).*$@$1@s;	# only something/something ...
  $ct = lc $ct;

  # bug 4298: If at this point we don't have a content-type, assume text/plain;
  # also, bug 5399: if the content-type *starts* with "text", and isn't in a 
  # list of known bad/non-plain formats, do likewise.
  $missing = 1 if !$ct; # flag missing content-type
  if (!$ct ||
      $ct =~ /^text\b(?!\/(?:x-vcard|calendar|html|x-amp-html)$)/)
  {
    $ct = "text/plain";
  }

  # strip inappropriate chars (bug 5399: after the text/plain fixup)
  $ct =~ tr/\000-\040\177-\377\042\050\051\054\072-\077\100\133-\135//d;

  # Now that the header has been parsed, return the requested information.

t/data/dkim/arc/ko01.eml  view on Meta::CPAN

Authentication-Results: sa-test.spamassassin.org; header.From=test@sa-test.spamassassin.org; dkim=pass (
        message from spamassassin.org verified; );
DKIM-Signature: v=1; a=rsa-sha256; d=sa-test.spamassassin.org; h=from:to
	:subject:message-id:date:mime-version:content-type; s=t0768; bh=
	15pFrAvOGi+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ZFopU9lJ/WFWddnO
	1nrYuptGphxfk2c4Tl0w/5HP0LhDMXX2KQRKHDh8p/AXxCERk6esOtX+BjME/ZOF
	PnFrSh7naSjaT22YrT91gLD548OK73YUxR3Zh5nVOmSfn0TM
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 2
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/arc/ok01.eml  view on Meta::CPAN

ARC-Seal: i=1; a=rsa-sha256; cv=none; d=sa-test.spamassassin.org; s=t0768; t=12345; b=GCLxX6NFV3/REpxEmzeKIRip5xJVP55GQTgOYndidGhYC+iXTNTm3xJf5zKQSaEikmtHgzL92QpgdpNcXGg+XvUI3UmQEOuyMCzJRw4hX0W3MFPSZ2xQr3hBKOnRpd96fAzGbDWJ9FjCwyloL+Uaylu+UNbfg1vcMv6/...
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=sa-test.spamassassin.org; h=from:to:subject:message-id:date:mime-version:content-type; s=t0768; t=12345; bh=15pFrAvOGi+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=hqOPs3BhWVPBH2RfcQm5HGhfsqbaof3...
ARC-Authentication-Results: i=1; sa-test.spamassassin.org; header.From=test@sa-test.spamassassin.org; dkim=pass (
        message from spamassassin.org verified; )
Authentication-Results: sa-test.spamassassin.org; header.From=test@sa-test.spamassassin.org; dkim=pass (
        message from spamassassin.org verified; );
DKIM-Signature: v=1; a=rsa-sha256; d=sa-test.spamassassin.org; h=from:to
	:subject:message-id:date:mime-version:content-type; s=t0768; bh=
	15pFrAvOGi+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ZFopU9lJ/WFWddnO
	1nrYuptGphxfk2c4Tl0w/5HP0LhDMXX2KQRKHDh8p/AXxCERk6esOtX+BjME/ZOF
	PnFrSh7naSjaT22YrT91gLD548OK73YUxR3Zh5nVOmSfn0TM
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 2
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-02.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=mIrAui3j2XnmatMmIz4LaV02wt
	OY7v3zJAq+pIdOjyhqgSehCByD0/+DJWjOHXFjul0ZLSqMd+M+13ZQo/5Z0OValm
	FTva44EC7CPc1ZvZn7S9WpDyBW5pz7qGD4d8q3
From: SpamAssassin Test FAKE <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 2
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-03.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=EiCs7/1kFKbYl6hdaIR5N2Qjvz
	qxqoR0jI/vud0XWCxcmvbrCO7BCy7bfrewMndHMBdWHYOjlK7JwF7re8dfx2PKm1
	n/zyLE+irAIBAsKaA3sWIqdq8swlp04Rb/6CJn
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 3
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-04.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:from:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=QpX3ST7TgW/mZLgCkHRpUzWkFu
	0t27yxMr780SFx4V6AouVaJ902fyVvHw9rXMEv9rSp+uIYwJvuekgxNgRNHT0Pg2
	Ve4ohhi/WNfaAzPFjMpeI7dLK8uPN20k5xxj2c
From: SpamAssassin Test <test@sa-test.spamassassin.org>
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 4
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-fail-05.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0000; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ew3dq85AwDg60ap6eG31FJfvvC
	XaYMYXKc6oepATDhzciHeXZQF7hPJNIS12sMrVjULEnBOK9rv3s9Zt2LWszfbnqP
	2r0wsYtZ9CX469vltG+n91BqT+qrfTl0curQ4o
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 5
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-06.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=txxxx; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ew3dq85AwDg60ap6eG31FJfvvC
	XaYMYXKc6oepATDhzciHeXZQF7hPJNIS12sMrVjULEnBOK9rv3s9Zt2LWszfbnqP
	2r0wsYtZ9CX469vltG+n91BqT+qrfTl0curQ4o
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 6
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-07.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; bh=15pFrAvOGi+eHKJgB6psh6iI
	BCbvYSuhPj+wQn6C7Ss=; b=eV6LkWhajlYSsITDKosr4TrlUi/+q+AVtdYQ3JdF
	pTwA0rJ/t7YbrRE6/U2e5bhEswrGymR8guzs2Xf0qlK0Ti2XX51LxP9UU/tROWq1
	Dd1paCom25LeMoUZ8JVxS6tywKmKKc8n1bhzXEnSNYO55YoVs/QehP3etQAnjsT2
	aKo=
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 7
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-fail-08.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1024a; bh=15pFrAvOGi+eHKJgB6psh6i
	IBCbvYSuhPj+wQn6C7Ss=; b=IAdlIs0kt/UsFvUEDoLToL45HAaB1IqXtJxATY2
	m3bYmDqF2G48cPc5BvQzaGB4cbjsuYEuLFnhnEgWGoLztjVAMlOlf8Fl7Qq0wXVp
	nWUxJPAGHJBXarvKwnrMrhXGS
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 8
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-fail-09.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test-nxd.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=txxxx; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ew3dq85AwDg60ap6eG31FJfvvC
	XaYMYXKc6oepATDhzciHeXZQF7hPJNIS12sMrVjULEnBOK9rv3s9Zt2LWszfbnqP
	2r0wsYtZ9CX469vltG+n91BqT+qrfTl0curQ4o
From: SpamAssassin Test <test@sa-test-nxd.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message (should fail) 9
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-pass-01.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha1; d=sa-test.spamassassin.org; h=from:to
	:subject:message-id:date:mime-version:content-type; s=t0768; bh=
	vxHXq7bMZ9+UHGuKBsbQKsDHmmk=; b=oRxHoP0YN5LfqwKiqM0iFIeG6J0odmtG
	bttw9VPWjmTouQl15+EEPNfmWNyKqbXYSs0BbmfkWZuYHSf56lj1F89xqbf62w2h
	cnelgVK2HSbyD8kzbAAGR/yPWamnRhne
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 1
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-pass-02.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; d=sa-test.spamassassin.org; h=from:to
	:subject:message-id:date:mime-version:content-type; s=t0768; bh=
	15pFrAvOGi+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=ZFopU9lJ/WFWddnO
	1nrYuptGphxfk2c4Tl0w/5HP0LhDMXX2KQRKHDh8p/AXxCERk6esOtX+BjME/ZOF
	PnFrSh7naSjaT22YrT91gLD548OK73YUxR3Zh5nVOmSfn0TM
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 2
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-pass-03.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; bh=15pFrAvOGi+eHKJgB6psh6iI
	BCbvYSuhPj+wQn6C7Ss=; b=YtY1X9FaRsHzUvYU8X/XG1NI+tmKmx1d/uzkrnAF
	qry2NWv+8FI3HCvXXRa9g8bmqPI+hbxUKv7MiQHkihrKIYr/kA9DIYyZEVOBO/Um
	jqemqkPx6GRmsqmB9GyBnOiU
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 3
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-pass-04.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; bh=15pFrAvOGi+eHKJgB6psh6iI
	BCbvYSuhPj+wQn6C7Ss=; b=1nTkj8819Yz/UW6F6rDKUERtV5QwdnFE46jDbvvj
	E7x2x5C8CIjhnBiy6ImT7YBT6W//erPosz5sKxu22PUj5/Zcd9e1tBLq5Q/lGDrX
	tdWepMsUxOUTFukn1GAmhFQx
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 4
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

t/data/dkim/test-pass-05.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=DgfhH71pMATYjqKko32MsRWxsO
	Js9XWb64+xVB8VzpypX3NaI7DyHTcTsEj+canFx8mLlk8ahNJb6XQHj+Lz9do4HB
	Jw4r9iuBvbxnJdbp9Tcw5Bey2zXYpKVmqQoMHr
Content-Type: text/plain; charset=us-ascii
MIME-Version: 1.0
Date: Mon, 08 Jun 2009 12:00:00 +0000
Message-ID: <4A294538.10002@spamassassin.org>
Subject: test message 5
To: undisclosed-recipients:;
From: SpamAssassin Test <test@sa-test.spamassassin.org>

t/data/dkim/test-pass-06.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=NSUjTvM8mmW8D43clzf8wswBCr
	YSnBNsMhw6LEPGlZWXEUiSSgculoBK2V8L0hRTqMqpCzHpei8PesccAxrhSRPSBb
	CD9bqyd79GqAPxbgEGUlL0r9rpEV4ZVcUrIKHv
Content-Type: text/plain; charset=us-ascii
MIME-Version: 1.0
Date: Mon, 08 Jun 2009 12:00:00 +0000
Message-ID: <4A294538.10002@spamassassin.org>
Subject: test message 6
To: undisclosed-recipients:;
From: SpamAssassin Test <test@sa-test.spamassassin.org>

t/data/dkim/test-pass-07.msg  view on Meta::CPAN

From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 7
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=r77n22svRRIvdSz7r7+4voona+
	QvX0Rlb5aPXS4P0pyHgYz/w/PklSfqhAdZbfUkhYfdQ3UcczfsdoDBjkhTQ8c8bK
	3qo0rBY5yoKp+Nb9qxIwHkkPpUfoAfEC02SBgo

testing

t/data/dkim/test-pass-08.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t0768; t=1244419200; bh=15pFrAvOGi
	+eHKJgB6psh6iIBCbvYSuhPj+wQn6C7Ss=; b=LOg+IyOPKmSkio7w57bKMSsLlE
	R2uatTzmrYlvo81oEhClmEE3sBza9nrkfaIfnGQFrFGGfRG8Lqu/XJCm4BIoZX5a
	2HK1EotKYyqXDTrJw44DqDS6SVPBFzeEMgI+Un
Subject: fake subject
MIME-Version: 2.0
Message-ID: <123@example.com>
To: SpamAssassin Test <test@sa-test.spamassassin.org>
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 8

t/data/dkim/test-pass-09.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1024a; bh=15pFrAvOGi+eHKJgB6psh6i
	IBCbvYSuhPj+wQn6C7Ss=; b=cNfGPTeDK0VNVuF/gkCbtdnLK8ySX8RLEQRwhEu
	tgFS3lgvbxHSvCcVx/M3WauzXlGBOV8apjbB8Wom7X7gFbq3OOCEtwbslb+EpfaZ
	qR3CgUUK5xvtl8KvGhYikLwWfeA3J67TfbbPN1XsCWEvXfml2RaFs2+ttdCabZ9D
	Uwqg=
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 9
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-pass-10.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1024b; bh=15pFrAvOGi+eHKJgB6psh6i
	IBCbvYSuhPj+wQn6C7Ss=; b=V84iCIHoIcDF0WJmh0Xq7BcUPqO56b6+TkJw4nr
	nk1wt0bwXnJldd8o9sf/EB84Dwle1URsnoBOi83b+lVe8K0uIJbQcfGUIpE4J57Z
	YWj978mJImZuClTJnDcoAdHBeG2OHT/KCw2XmpDOBUr1CXAySqJweetbakqxQxNj
	0vuk=
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 10
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-pass-11.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1024c; bh=15pFrAvOGi+eHKJgB6psh6i
	IBCbvYSuhPj+wQn6C7Ss=; b=VlSVJyxKuRBvcrM/jfJvCoio0KQsm7qe+elakmn
	QGGFQDdWZh682GdBlRIqfHL6gCdEe0cjpSvZoHXlQGyRaHN9a63bU9DFtzSGTj3D
	lXrEI1UA71GV2PJjVqLO5CIzsUCrmVYuzX0eoUGtDmyPS7VPRGZjMNGwIaTgukVw
	igso=
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 11
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-pass-12.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1024d; bh=15pFrAvOGi+eHKJgB6psh6i
	IBCbvYSuhPj+wQn6C7Ss=; b=kveZJvWvWEUEJY1769i6WEEQcDm5pgS36dxcSYK
	CMbWzMt0YsfBJ6HZw8OL7L/wmMBlBkfCPGuA/thirxdXq2xYpFZaZ6nDvkNWezXS
	QCLi9RQlZB0OgkvkcnNIwS1X3n270QuumZYMjOGU7p9s4ABkeNbht5xguxCnoIBZ
	lyy0=
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 12
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-pass-13.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1280; bh=15pFrAvOGi+eHKJgB6psh6iI
	BCbvYSuhPj+wQn6C7Ss=; b=f2vBvTkR2Fazg5I1pBae55DyY2y7GTGgiUpd5+Rk
	Yl6Y2rTOiiBhE7EiffuxHPYWS8LEi37JDW0q5RTKJrEe2cNqAuIxerXigXMqMvs5
	PNk/jyN9tkcq2STEAfwAzp71VDHkGcTd7V729MBTMmC7hJ/3TE7vYjtevmo1uYUP
	jTJeDD5baDximaxnyE64ckJ43kEC4nUo1rkZ/aFPt5tUKQ==
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 13
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000
MIME-Version: 1.0

t/data/dkim/test-pass-14.msg  view on Meta::CPAN

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=
	sa-test.spamassassin.org; h=from:to:subject:message-id:date
	:mime-version:content-type; s=t1536; bh=15pFrAvOGi+eHKJgB6psh6iI
	BCbvYSuhPj+wQn6C7Ss=; b=KizphoLujIr3BRA9Pb6c3kaDhzsbdPsQB8Nc7S9c
	vJDRk9LwGRT2dZgpmoFqqnhKztYcrq4fhC2XrYxHobX/uJRn7ouP6FpefMSanRK5
	uTZHiJiH0w/jlWPs4k+NlO9eaoWvm1ju32jS/y9seQVcVATZzqI1FaQtlzXzBqBY
	pgUoB/MmtiUQM39cPWVX0QeoXmSQmsxLafblXT49Pp/GgwVPfhu4m+NTVhlUi8J4
	Cw7LMWp6QXYs72nlis3iMJMJ
From: SpamAssassin Test <test@sa-test.spamassassin.org>
To: undisclosed-recipients:;
Subject: test message 14
Message-ID: <4A294538.10002@spamassassin.org>
Date: Mon, 08 Jun 2009 12:00:00 +0000



( run in 0.752 second using v1.01-cache-2.11-cpan-524268b4103 )