Sample code for 30+ languages & platforms
Delphi ActiveX Requires Chilkat v11.0.0+

Parsing a Multipart/Digest Email

See more Email Object Examples

This example demonstrates how to parse a multipart/digest email. An email parsed by this sample could have a MIME structure as follows:
multipart/mixed
    text/plain
    text/plain
    multipart/digest
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
    text/plain

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
var
success: Integer;
emlPath: WideString;
email: TChilkatEmail;
numDigests: Integer;
eDigest: TChilkatEmail;
i: Integer;
m: WideString;

begin
success := 0;

emlPath := 'qa_data/eml/multipart_digest.eml';

email := TChilkatEmail.Create(Self);

//  For this example, we'll load the email from a .eml.
//  The email could alternatively be loaded as a result of downloading from an IMAP or POP3 server..

success := email.LoadEml(emlPath);
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

numDigests := email.NumDigests;
Memo1.Lines.Add('num digests = ' + IntToStr(numDigests));

eDigest := TChilkatEmail.Create(Self);
i := 0;
while i < numDigests do
  begin
    email.GetDigestEmail(i,eDigest.ControlInterface);
    Memo1.Lines.Add(IntToStr(i) + ':' + eDigest.FromAddress + ', ' + eDigest.Subject);
    m := eDigest.GetHeaderField('Message');
    if (eDigest.LastMethodSuccess = 1) then
      begin
        Memo1.Lines.Add('    Message = ' + m);
      end;
    i := i + 1;
  end;