Ich habe vorhin den gesamten Quellcode der Procedure, an die Stelle gesetzt an der der Text der E-Mail in das Memo geschrieben wird.
Delphi-Quellcode:
for intIndex := 0 to Pred(Msg.MessageParts.Count) do
begin
if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
begin //general attachment
pnlAttachments.visible := true;
li := lvMessageParts.Items.Add;
li.ImageIndex := 8;
li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
end
else
begin //body text
if Msg.MessageParts.Items[intIndex] is TIdText then
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := TIdText(Msg.MessageParts.Items[intIndex]).Body.Text);
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
Die Übergabe klappt ohne Probleme.
Ich glaube, dass ich es erst mal so lasse.
Allerdings müßte ich die Procedure dann noch mal schreiben(kopieren), wenn die Mail aus der Datenbank aufgerufen wird. Das wollte ich verhindern.
LG