Sample code for 30+ languages & platforms
Tcl 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 Tcl Downloads

Tcl

load ./chilkat.dll

set 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.
set email [new_CkEmail]

CkEmail_put_Subject $email "this is a test"
CkEmail_put_From $email "support@chilkatsoft.com"
CkEmail_AddTo $email "John Doe" "john@example.com"
CkEmail_AddPlainTextAlternativeBody $email "this is a test"
CkEmail_AddHtmlAlternativeBody $email "<html><body><b>Hello John!</b><p>This is a test</p></body></html>"
set success [CkEmail_AddFileAttachment2 $email "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"}'

set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "email" [CkEmail_getMime $email]
CkJsonObject_UpdateString $json "options" "short"

set http [new_CkHttp]

set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" "https://spamcheck.postmarkapp.com/filter" $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkEmail $email
    delete_CkJsonObject $json
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

puts "response status code = [CkHttpResponse_get_StatusCode $resp]"
puts "response body: "
puts [CkHttpResponse_bodyStr $resp]

delete_CkEmail $email
delete_CkJsonObject $json
delete_CkHttp $http
delete_CkHttpResponse $resp