Soweit ich den Code jetzt verstanden habe müsste der Fehler in den zwei Schleifen liegen.
i ist bei die Variable für die ListView Schleife und AttachCount für die Multipart Schleife. Der Fehler müsste also in folgenden Zeilen liegen:
Delphi-Quellcode:
if Msg.MessageParts.Items[i] is TIDAttachment then
Attach := (Msg.MessageParts.Items[AttachCount] as TIDAttachment).FileName;
Ich würde sagen das i in der ersten Zeile ist falsch. Das i müsstest du einfach mit AttachCount ersetzen. denn das hat ja nichts mit der ListView Schleife zu tun. Gleiches gilt auch für das IDText. Das müsste deinen Fehler beheben.
So müsste es dann aussehen:
Delphi-Quellcode:
if Msg.MessageParts.Items[AttachCount] is TIDAttachment then
Attach := (Msg.MessageParts.Items[AttachCount] as TIDAttachment).FileName;
if Msg.MessageParts.Items[AttachCount] is TIDText then
RichEdit1.Text := (Msg.MessageParts.Items[AttachCount] as TIDText).Body.Text;