I'm trying to find a way to read only text from an email. Unfortunately, in Memo1 there is still information about attachments as well as all information about the structure of the e-mail.
if ( IdIMAP1->UIDRetrieve( UID, IdMessage1 ) )
{
IdMessage1->MessageParts->CountParts();
if( IdMessage1->MessageParts->TextPartCount )
{
String b;
IdIMAP1->UIDRetrieveText(UID, b);
Memo1->Lines->Add( UTF8Decode(b) );
}
}
I tried to use the TIdText function but the result Str is empty.
TStrings* Str = new TStringList;
TIdText( IdMessage1->MessageParts, Str );
ContentType of mesage is multipart but parts of mesage contains also text/plain type.
IdIMAP1->UIDRetrieveHeader(UID, IdMessage1);
IdMessage1->ContentType;
I tried to isolate the text part of the email but that didn't help either.
TIdMessagePart *Part;
for( int j = 0; j < IdMessage1->MessageParts->Count; ++j )
{
Part = IdMessage1->MessageParts->Items[j];
if( IsHeaderMediaType(Part->ContentType, "text/plain")
{
String b;
IdIMAP1->UIDRetrieveText(UID, b);
}
}
Do you have any idea?
Is this ok using stucture?
TIdMessagePart *Part;
IdIMAP1->UIDRetrieveHeader(UID, IdMessage1);
IdIMAP1->UIDRetrieveStructure( UID, IdMessage1 );
for( int j = 0; j < IdMessage1->MessageParts->Count; ++j )
{
Part = IdMessage1->MessageParts->Items[j];
if( IsHeaderMediaType(Part->ContentType, "text/plain")
{
String b;
IdIMAP1->UIDRetrieveText(UID, b);
}
else { }
}