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

C++
#include <CkMime.h>
#include <CkEmail.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.

    CkMime mime;

    success = mime.SetBodyFromFile("VoiceMessage.wav");
    if (success == false) {
        std::cout << mime.lastErrorText() << "\r\n";
        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("");
    mime.put_Filename("");

    const char *strMime = 0;
    strMime = mime.getMime();
    std::cout << strMime << "\r\n";

    //  Now load it into an email object:
    CkEmail email;
    success = email.SetFromMimeText(strMime);
    if (success == false) {
        std::cout << email.lastErrorText() << "\r\n";
        return;
    }

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

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

    std::cout << "OK!" << "\r\n";
    }