Sample code for 30+ languages & platforms
Go

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 Go Downloads

Go
    success := false

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

    mime := chilkat.NewMime()

    success = mime.SetBodyFromFile("VoiceMessage.wav")
    if success == false {
        fmt.Println(mime.LastErrorText())
        mime.DisposeMime()
        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.SetDisposition("")
    mime.SetFilename("")

    var strMime *string = new(string)
    strMime = mime.GetMime()
    fmt.Println(*strMime)

    // Now load it into an email object:
    email := chilkat.NewEmail()
    success = email.SetFromMimeText(*strMime)
    if success == false {
        fmt.Println(email.LastErrorText())
        mime.DisposeMime()
        email.DisposeEmail()
        return
    }

    // Add subject, TO, FROM, etc.
    email.SetSubject("This is a test")
    email.SetFrom("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 {
        fmt.Println(email.LastErrorText())
        mime.DisposeMime()
        email.DisposeEmail()
        return
    }

    fmt.Println("OK!")

    mime.DisposeMime()
    email.DisposeEmail()