Hallo,
Mails müssen am Ende immer eine oder zwei Leerzeilen und 'ne Zeile, in der nur ein Punkt ist, haben (schau mal in die Spezifikation
RFC ichweissleidernichwas - siehe unten). Wenn die Leerzeile(n) und/oder Punkt am Ende fehlen, kommt idMessage (nach meiner Erfahrung) mit den Dateien nicht zurecht (da ja noch nicht die vollständige Mail empfangen wurde).
Schau mal nach, ob das Problem bei allen Mails passiert oder nur bei einigen und ob Du durch anhängen von Leerzeilen an dem Problem vorbeikommst.
In meinem Programm mache ich das so:
Delphi-Quellcode:
...
sl := TStringList.Create;
st := TMemoryStream.Create;
Try
Try
sFileName := sr.FindData.cFileName;
sl.LoadFromFile(sDirectory + '
\' + sFileName);
sl.Add('
');
sl.Add('
.');
sl.Add('
');
sl.SaveToStream(st);
st.Position := 0;
Try
IdMessage.LoadFromStream(st);
except
on e :
Exception do Begin
stb2.SimpleText := sDirectory + '
\' + sFileName + '
- ' + e.
Message;
end;
end;
...
Zitat von
Delphi-Hilfe: