Topic Path: Symbol Reference > Classes > TIdIMAP4 Class > TIdIMAP4 Methods > RetrievePart Method > RetrievePart Method (Integer, Integer, PChar, Integer, string)
TIdIMAP4.RetrievePart Method (Integer, Integer, PChar, Integer, string)

Retrieves an individual message part for a specified message stored in the remote mailbox.

function RetrievePart(
    const AMsgNum: Integer; 
    const APartNum: Integer; 
    var ABuffer: PChar; 
    var ABufferLength: Integer; 
    AContentTransferEncoding: string = 'text'
): Boolean; overload;
Relative message number to be retrieved from the mailbox.
Message part number to be retrieved.
Destination used to store the retrieved message part.
Length of the message part.
Content transfer encoding for the message part. 

Boolean - True on success.

RetrievePart is an overloaded Boolean function used to retrieve an individual message part for the relative message number specified in aMsgNum. 

Use RetrieveStructure to find the message parts available for a specific message, and the content transfer encoding used for each of the message parts. Use the message part number (the relative position of the message part) and the content transfer encoding when calling RetrievePart. 

ABuffer is the storage to use for the retrieved message part after decoding the message content using the algorithm specified in AContentTransferEncoding. 

On successful retrieval of the message part, the values in ABuffer and ABufferLength are updated to reflect the message part content and length (respectively). Please note that the caller is responsible for freeing the memory allocated in ABuffer by calling FreeMem. 

RetrievePart validates the message number in AMsgNum to ensure that it contains a positive non-zero value, and raises an EIdNumberInvalid exception if the requirement is not met. 

RetrievePart requires that ConnectionState contain the value csSelected, or an EIdConnectionStateError exception will be raised. Use SelectMailBox or ExamineMailBox to select a mailbox prior to calling RetrieveNoDecodeToStream

RetrievePart sends the IMAP4 FETCH command to retrieve the specified message part, and retrieves the message part content using a TIdTCPStream instance. RetrievePart assigns the event handlers in OnWorkBeginForPart, OnWorkForPart, and OnWorkEndForPart to the TIdTCPStream instance to respond to work events occurring during message part retrieval. 

AFter retrieval of the message part, ABuffer will contains the decoded message part content and ABufferLength will contain the length of the decoded message part.

Copyright 1993-2006, Chad Z. Hower (aka Kudzu) and the Indy Pit Crew. All rights reserved.
Post feedback to the Indy Docs Newsgroup.