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 <C_CkMimeW.h>
#include <C_CkEmailW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkMimeW mime;
    const wchar_t *strMime;
    HCkEmailW email;

    success = FALSE;

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

    mime = CkMimeW_Create();

    success = CkMimeW_SetBodyFromFile(mime,L"VoiceMessage.wav");
    if (success == FALSE) {
        wprintf(L"%s\n",CkMimeW_lastErrorText(mime));
        CkMimeW_Dispose(mime);
        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...
    CkMimeW_putDisposition(mime,L"");
    CkMimeW_putFilename(mime,L"");

    strMime = CkMimeW_getMime(mime);
    wprintf(L"%s\n",strMime);

    // Now load it into an email object:
    email = CkEmailW_Create();
    success = CkEmailW_SetFromMimeText(email,strMime);
    if (success == FALSE) {
        wprintf(L"%s\n",CkEmailW_lastErrorText(email));
        CkMimeW_Dispose(mime);
        CkEmailW_Dispose(email);
        return;
    }

    // Add subject, TO, FROM, etc.
    CkEmailW_putSubject(email,L"This is a test");
    CkEmailW_putFrom(email,L"support@chilkatsoft.com");
    success = CkEmailW_AddTo(email,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 = CkEmailW_SaveEml(email,L"email.eml");
    if (success == FALSE) {
        wprintf(L"%s\n",CkEmailW_lastErrorText(email));
        CkMimeW_Dispose(mime);
        CkEmailW_Dispose(email);
        return;
    }

    wprintf(L"OK!\n");


    CkMimeW_Dispose(mime);
    CkEmailW_Dispose(email);

    }