Sample code for 30+ languages & platforms
Delphi ActiveX

Get the Binary Bytes of a MIME Body or Sub-Part Body

See more MIME Examples

Demonstrates the GetBodyBinary method. The MIME data file used in this example is available at MIME Sample File.

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;
mpRelated: TChilkatMime;
pJpg: TChilkatMime;
jpgBytes: Array of Byte;
fac: TCkFileAccess;

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);

// The contents of this MIME file are shown below, 
// and is also available at https://www.chilkatsoft.com/sampleMime.txt
success := mime.LoadMimeFile('qa_data/mime/sampleMime.txt');
if (success = 0) then
  begin
    Memo1.Lines.Add(mime.LastErrorText);
    Exit;
  end;

// The MIME used in this example has the following nested structure
// 
// multipart/alternative
//     text/plain
//     multipart/related
//         text/html
//         image/jpeg
// 

// This example will get the JPG image data bytes.

mpRelated := TChilkatMime.Create(Self);
success := mime.PartAt(1,mpRelated.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(mime.LastErrorText);
    Exit;
  end;

pJpg := TChilkatMime.Create(Self);
success := mpRelated.PartAt(1,pJpg.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(mpRelated.LastErrorText);
    Exit;
  end;

jpgBytes := pJpg.GetBodyBinary();

// If these bytes are saved to a file, it will be a valid JPG image.
fac := TCkFileAccess.Create(Self);
success := fac.WriteEntireFile('qa_output/starfish20.jpg',jpgBytes);
Memo1.Lines.Add('success = ' + IntToStr(Ord(success)));

// --------------------------------------------------------------
// --------------------------------------------------------------
// The MIME sample file loaded at the beginning of this example
// contains the following MIME:

// Subject: Test email.
// Content-Type: multipart/alternative;
// 	boundary="------------DB171738719FB06D67DEBAA0"
// MIME-Version: 1.0
// 
// --------------DB171738719FB06D67DEBAA0
// Content-Type: text/plain; charset="utf-8"; format=flowed
// Content-Transfer-Encoding: 7bit
// 
// This is a test.
// 
// --------------DB171738719FB06D67DEBAA0
// Content-Type: multipart/related;
// 	boundary="------------A940F1230E6F0105F03DB2CB"
// 
// --------------A940F1230E6F0105F03DB2CB
// Content-Type: text/html; charset="utf-8"
// Content-Transfer-Encoding: 8bit
// 
// <html><head>
// <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
//   </head>
//   <body bgcolor="#FFFFFF" text="#000000">
//     <p>This is a test.&nbsp; <img src="cid:part1.E16AE3B4.1505C436@chilkatsoft.com" height="20" width="20"></p>
//   </body>
// </html>
// 
// --------------A940F1230E6F0105F03DB2CB
// Content-Type: image/jpeg; name="starfish20.jpg"
// Content-Transfer-Encoding: base64
// Content-ID: <part1.E16AE3B4.1505C436@chilkatsoft.com>
// Content-Disposition: inline; filename="starfish20.jpg"
// 
// /9j/4AAQSkZJRgABAQEASABIAAD//gAmRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcD8g
// NC4w/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdf
// YmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
// Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8IAEQgAFAAUAwERAAIRAQMRAf/EABcAAAMBAAAA
// AAAAAAAAAAAAAAIDBAX/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMEAP/aAAwDAQACEAMQAAAB2kZY
// NNEijWKddfTmLgALWH//xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQL0XqN+
// pM2aqJGMiqFFCyg7z//EABwRAAICAgMAAAAAAAAAAAAAAAERAAIQIQMSUf/aAAgBAwEBPwHqU5aq
// Axx+y1tMQl4elj//xAAcEQEAAQUBAQAAAAAAAAAAAAABEQACEBIhA1H/2gAIAQIBAT8B3Bhqy7Zc
// enyiwmGgDhiOzj//xAAdEAABAwUBAAAAAAAAAAAAAAABAAIREBIhIkFR/9oACAEBAAY/ArZyn+Cg
// xtxWuJaoCnqDuin/xAAcEAABBAMBAAAAAAAAAAAAAAABABEhYRAxQVH/2gAIAQEAAT8hkEwPUUR9
// DYfE4nxtRpIkBTsayuALIiuY/9oADAMBAAIAAwAAABDWPTsf/8QAGhEAAwADAQAAAAAAAAAAAAAA
// AAEREDFBIf/aAAgBAwEBPxC0DVPcWm+Ce4OesrkE6bjH/8QAGBEBAQEBAQAAAAAAAAAAAAAAAREA
// QRD/2gAIAQIBAT8QahMiOc8YgSrnTY3ELclHXn//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFx
// EFH/2gAIAQEAAT8Qn3igmSZSj+c4N4zapMy9IjFV98wncN2iuLFsCEbDGxQkI6RO/n//2Q==
// 
// --------------A940F1230E6F0105F03DB2CB--
// 
// --------------DB171738719FB06D67DEBAA0--
// 
end;