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

Create Email with Non-Standard Binary Body

Creates an email where the only body is a binary WAV file. The technique used in the example could be applied to other binary files, such as PDF, MS-WORD docs, Excel docs, etc.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkMimeW.h>
#include <CkEmailW.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.

    CkMimeW mime;

    success = mime.SetBodyFromFile(L"VoiceMessage.wav");
    if (success == false) {
        wprintf(L"%s\n",mime.lastErrorText());
        return;
    }

    // The MIME has this header:
    // Content-Disposition: attachment;
    // 	 filename="VoiceMessage.wav"
    // Content-Transfer-Encoding: base64
    // Content-Type: audio/x-wav;
    // 	name="VoiceMessage.wav"

    // We don't want the content-disposition to be an
    // attachment -- otherwise the email object will self-correct
    // and put it in a multipart/mixed format...
    mime.put_Disposition(L"");
    mime.put_Filename(L"");

    const wchar_t *strMime = 0;
    strMime = mime.getMime();
    wprintf(L"%s\n",strMime);

    // Now load it into an email object:
    CkEmailW email;
    success = email.SetFromMimeText(strMime);
    if (success == false) {
        wprintf(L"%s\n",email.lastErrorText());
        return;
    }

    // Add subject, TO, FROM, etc.
    email.put_Subject(L"This is a test");
    email.put_From(L"support@chilkatsoft.com");
    success = email.AddTo(L"Matt",L"matt@chilkatsoft.com");

    // Your email is ready to send.
    // (but for this example, we'll simply save it to a file...)
    success = email.SaveEml(L"email.eml");
    if (success == false) {
        wprintf(L"%s\n",email.lastErrorText());
        return;
    }

    wprintf(L"OK!\n");
    }