Sample code for 30+ languages & platforms
Unicode C++

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 Unicode C++ Downloads

Unicode C++
#include <CkEmailW.h>
#include <CkJsonObjectW.h>
#include <CkHttpW.h>
#include <CkHttpResponseW.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    // First build an email to check.
    CkEmailW email;
    email.put_Subject(L"this is a test");
    email.put_From(L"support@chilkatsoft.com");
    email.AddTo(L"John Doe",L"john@example.com");
    email.AddPlainTextAlternativeBody(L"this is a test");
    email.AddHtmlAlternativeBody(L"<html><body><b>Hello John!</b><p>This is a test</p></body></html>");
    success = email.AddFileAttachment2(L"qa_data/jpg/starfish.jpg",L"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"}'

    CkJsonObjectW json;
    json.UpdateString(L"email",email.getMime());
    json.UpdateString(L"options",L"short");

    CkHttpW http;
    CkHttpResponseW resp;
    success = http.HttpJson(L"POST",L"https://spamcheck.postmarkapp.com/filter",json,L"application/json",resp);
    if (success == false) {
        wprintf(L"%s\n",http.lastErrorText());
        return;
    }

    wprintf(L"response status code = %d\n",resp.get_StatusCode());
    wprintf(L"response body: \n");
    wprintf(L"%s\n",resp.bodyStr());
    }