Sample code for 30+ languages & platforms
Delphi ActiveX

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 Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
mime: TChilkatMime;
strMime: WideString;
email: TChilkatEmail;

begin
success := 0;

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

mime := TChilkatMime.Create(Self);

success := mime.SetBodyFromFile('VoiceMessage.wav');
if (success = 0) then
  begin
    Memo1.Lines.Add(mime.LastErrorText);
    Exit;
  end;

// 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.Disposition := '';
mime.Filename := '';

strMime := mime.GetMime();
Memo1.Lines.Add(strMime);

// Now load it into an email object:
email := TChilkatEmail.Create(Self);
success := email.SetFromMimeText(strMime);
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

// Add subject, TO, FROM, etc.
email.Subject := 'This is a test';
email.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 = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

Memo1.Lines.Add('OK!');
end;