anchor.diff:      FReceivedDate : TDateTime;
       FSender : String;
       FAttachments : TObjectList;
  +    function GetHTMLReportHeader : String;
  +    function GetTXTReportHeader : String;
     public
       constructor Create;
       destructor Destroy; override;
  
positive.code: uses
    sysutils,
    IdPOP3,
    IdMessage, IdMessageBuilder, IdAttachment, IdText,
    IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
    IdMessageClient, IdSMTPBase, IdBaseComponent, IdIOHandler,
    IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdSASLLogin,
    IdSASL_CRAM_SHA1, IdSASL, IdSASLUserPass, IdSASL_CRAMBase, IdSASL_CRAM_MD5,
    IdSASLSKey, IdSASLPlain, IdSASLOTP, IdSASLExternal, IdSASLDigest,
    IdSASLAnonymous, IdUserPassProvider,
    mUtility{$IFDEF MLOG_AVAILABLE}, mLog{$ENDIF};
  
  
negative.code: 
  { TReceivedMail }
  
  function TReceivedMail.GetHTMLReportHeader: String;
  var
    i : integer;
    sep : String;
  begin
    Result := '';
    Result := Result + '<table style="font-family: Times New Roman; font-size: 12pt;">';
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap; ">From:</td><td>' + Self.Sender + '</td></tr>';
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap;">Sent on:</td><td>' + DateTimeToStr(Self.ReceivedDate) + '<br></td></tr>';
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap; ">To:</td><td>';
    sep := '';
    for i := 0 to Self.Recipients.Count - 1 do
    begin
      Result := Result + sep + Self.Recipients.Strings[i];
      sep := '; ';
    end;
    Result := Result + '</td></tr>';
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap; ">CC:</td><td>';
    sep := '';
    for i := 0 to Self.CCRecipients.Count - 1 do
    begin
      Result := Result + sep + Self.CCRecipients.Strings[i];
      sep := '; ';
    end;
    Result := Result + '</td></tr>';
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap;">Subject:</td><td>' + StrHtmlEncode(Self.Subject) + '<br></td></tr>';
    if Self.AttachmentsCount > 0 then
    begin
      Result := Result + '<tr style="height: 18px; vertical-align: top; "><td style="font-weight: bold; white-space:nowrap; ">Attachments:</td><td>';
      sep := '';
      for i := 0 to Self.AttachmentsCount - 1 do
      begin
        Result := Result + sep + StrHtmlEncode(Self.GetAttachment(i).FileName);
        sep := ', ';
      end;
      Result := Result + '</td></tr>';
    end;
  
    Result := Result + '<tr style="height: 18px; vertical-align: top; "><td>&nbsp;</td><td>&nbsp;</td></tr>';
    Result := Result + '</table><br>';
  end;
  
  function TReceivedMail.GetTXTReportHeader: String;
  var
    i : integer;
    sep : String;
  begin
    Result := '';
    Result := Result + 'From: ' + Self.Sender + sLineBreak;
    Result := Result + 'Sent on: ' + DateTimeToStr(Self.ReceivedDate) + sLineBreak;
    Result := Result + 'To: ';
    sep := '';
    for i := 0 to Self.Recipients.Count - 1 do
    begin
      Result := Result + sep + Self.Recipients.Strings[i];
      sep := '; ';
    end;
    Result := Result + sLineBreak;
    Result := Result + 'CC: ';
    sep := '';
    for i := 0 to Self.CCRecipients.Count - 1 do
    begin
      Result := Result + sep + Self.CCRecipients.Strings[i];
      sep := '; ';
    end;
    Result := Result + sLineBreak;
    Result := Result + 'Subject: ' + Self.Subject + sLineBreak;
    if Self.AttachmentsCount > 0 then
    begin
      Result := Result + 'Attachments: ';
      sep := '';
      for i := 0 to Self.AttachmentsCount - 1 do
      begin
        Result := Result + sep + Self.GetAttachment(i).FileName;
        sep := ', ';
      end;
      Result := Result + sLineBreak;
    end;
    Result := Result + sLineBreak;
  end;
  
  constructor TReceivedMail.Create;
  begin
    FSubject := '';
  