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