Board index » delphi » IdIMAP4 Retrieve Problems

IdIMAP4 Retrieve Problems


2003-10-05 08:17:40 PM
delphi194
Hi,
Iīve got a problem with IdIMAP4:
if I try to retrieve a message:
FIMAP4Client.UIDRetrieve(UID,aMsg);
then it works only with messages which ends with a "." (seems to be the
common EndOfMessage delimiter in Indy).
Well, I moved a mail from OE to the INBOX of my IMAP4 Server (courier
imap). There is of course no "." at the end of the message. So, if I try
to load the message, it takes infinite, and I donīt know how to stop
this. I canīt close my application without using Delphiīs De{*word*81} or
Windows?TaskManager.
The infinite loop is here:
TIdMessageDecoderMIME.ReadBody (in the repeat ... until False) where it
never reaches any end.
Iīm using IdAntifreeze, Delphi 6+latest fixes/updates and Indy 9.0.14 &
latest Snapshot.
I can provide the sourcecode of the message upon request.
Best regards,
Thomas
 
 

Re:IdIMAP4 Retrieve Problems

"Thomas Zangl" <XXXX@XXXXX.COM>writes
Quote
Hi,

Iīve got a problem with IdIMAP4:

if I try to retrieve a message:
FIMAP4Client.UIDRetrieve(UID,aMsg);
then it works only with messages which ends with a "." (seems to be the
common EndOfMessage delimiter in Indy).
The '.' is not part of the message: the server is supposed to send it after
it sends the message. While Indy 10 is not yet stable, it is TIdIMAP4 uses a
different method due to this problem with some IMAP servers.
Quote
Well, I moved a mail from OE to the INBOX of my IMAP4 Server (courier
imap). There is of course no "." at the end of the message. So, if I try
to load the message, it takes infinite, and I donīt know how to stop
this. I canīt close my application without using Delphiīs De{*word*81} or
Windows?TaskManager.

The infinite loop is here:
TIdMessageDecoderMIME.ReadBody (in the repeat ... until False) where it
never reaches any end.
The problem moves elsewhere depending on the message format.
Ciaran
 

Re:IdIMAP4 Retrieve Problems

Ciaran Costelloe schrieb:
Quote
The '.' is not part of the message: the server is supposed to send it after
it sends the message. While Indy 10 is not yet stable, it is TIdIMAP4 uses a
different method due to this problem with some IMAP servers.
Thats correct. But I have to append it everytime I try to load a raw
message into a TIdMessageClient ... :-/
Quote
The problem moves elsewhere depending on the message format.
And where? Do you have any practical solution for this? Anoying bug :-/
--
Thomas