Sample code for 30+ languages & platforms
Perl Requires Chilkat v11.0.0+

Get SpamAssassin Score for an Email

See more Email Object Examples

Uses Postmark’s spam API (a RESTfull interface to the SpamAssassin filter tool) to analyze an email to get a spam score.

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# First build an email to check.
my $email = Chilkat2::Email->new;
$email->Subject('this is a test');
$email->From('support@chilkatsoft.com');
$email->AddTo('John Doe', 'john@example.com');
$email->AddPlainTextAlternativeBody('this is a test');
$email->AddHtmlAlternativeBody('<html><body><b>Hello John!</b><p>This is a test</p></body></html>');
my $success = $email->AddFileAttachment2('qa_data/jpg/starfish.jpg', 'image/jpeg');

# Check this email by implementing this curl command:

# curl -X POST "https://spamcheck.postmarkapp.com/filter"
# -H "Accept: application/json"
# -H "Content-Type: application/json"
# -v
# -d '{"email":"raw dump of email", "options":"short"}'

my $json = Chilkat2::JsonObject->new;
$json->UpdateString('email', $email->GetMime());
$json->UpdateString('options', 'short');

my $http = Chilkat2::Http->new;
my $resp = Chilkat2::HttpResponse->new;
$success = $http->HttpJson('POST', 'https://spamcheck.postmarkapp.com/filter', $json, 'application/json', $resp);
if (!$success) {
    print $http->LastErrorText, "\n";
    exit;
}

print 'response status code = ', $resp->StatusCode, "\n";
print "response body: \n";
print $resp->BodyStr, "\n";