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

Perl
use chilkat();

$success = 0;

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

#  First build an email to check.
$email = chilkat::CkEmail->new();
$email->put_Subject("this is a test");
$email->put_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>");
$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"}'

$json = chilkat::CkJsonObject->new();
$json->UpdateString("email",$email->getMime());
$json->UpdateString("options","short");

$http = chilkat::CkHttp->new();
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpJson("POST","https://spamcheck.postmarkapp.com/filter",$json,"application/json",$resp);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

print "response status code = " . $resp->get_StatusCode() . "\r\n";
print "response body: " . "\r\n";
print $resp->bodyStr() . "\r\n";