Sample code for 30+ languages & platforms
Delphi ActiveX

Get an Attached Message as an Email Object

See more Email Object Examples

Demonstrates the Chilkat Email.GetAttachedEmail method, which copies the Nth embedded message/rfc822 MIME part into another Email object. The index is zero-based (valid values run from 0 through NumAttachedMessages - 1). This example attaches an email and then extracts it back into its own object.

Background: When a message forwards another email as an attachment, that nested message is a complete email in its own right. GetAttachedEmail turns it back into a fully navigable Email object so you can read its subject, sender, body, and even its own attachments — essential for processing forwarded mail, or for tools that unpack reported spam/phishing to examine the original.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
var
success: Integer;
innerEmail: TChilkatEmail;
email: TChilkatEmail;
attached: TChilkatEmail;

begin
success := 0;

//  Demonstrates the GetAttachedEmail method, which copies the Nth embedded message/rfc822
//  MIME part into another Email object.  The index is zero-based.

//  Build an inner email and attach it to an outer email.
innerEmail := TChilkatEmail.Create(Self);
innerEmail.Subject := 'Embedded message';
innerEmail.From := 'alice@example.com';
innerEmail.Body := 'This is the embedded message.';

email := TChilkatEmail.Create(Self);
email.Subject := 'Has an attached message';
success := email.AttachEmail(innerEmail.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

//  Copy the first embedded message (index 0) into its own Email object.
attached := TChilkatEmail.Create(Self);
success := email.GetAttachedEmail(0,attached.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

Memo1.Lines.Add('Attached email subject: ' + attached.Subject);
Memo1.Lines.Add('Attached email from: ' + attached.From);