私はIdImap4 + Idmessageを使用してメールを受信しています。TWebBrowserに電子メールを表示する方法は?
しかし、私は見つけることができませんでした:
- をTWebBrowserで受信したHTML形式の電子メールの本文を表示する方法?
- TWebBrowserでも簡単なテキストメッセージを表示することは可能ですか?はいの場合、どうですか?
私はIdImap4 + Idmessageを使用してメールを受信しています。TWebBrowserに電子メールを表示する方法は?
しかし、私は見つけることができませんでした:
電子メールのHTMLを表示することは技術的に可能ですが、TWebBrowser
はこの目的にはあまり適していません。 IStream
インターフェイス(たとえば、TMemoryStream
およびTStreamAdapter
クラスを使用)を介してアクセス可能なメモリにHTMLを保存し、ブラウザをTWebBrowser::Navigate2()
メソッド経由で"about:blank"
URLに移動し、TWebBrowser::OnDocumentComplete
イベントが発生するのを待ってクエリを実行する必要がありますIPersistStreamInit
インターフェイスのドキュメントを開き、IStream
をIPersistStreamInit::Load()
メソッドに渡します。
電子メールからHTMLを表示するだけでなく、一般的にメモリ内HTMLを表示する微妙な癖があります。特に、電子メールのHTMLは、電子メール内の他の場所にある画像やその他のリソースに依存する可能性があります。TWebBrowser
にロードすることはできません。一時ファイルに保存したり、HTMLを変更して参照することはできません。 HTML表示コンポーネント(http://www.pbear.comなど)などのサードパーティのHTMLビューアを使用して、要求されたリソースのデータを手動で提供することをお勧めします。その後、必要に応じてTIdMessage
からデータを引き出すことができます。
ブラウザに他のメッセージを表示するには、最初のページが読み込まれた後でドキュメントのDOMを操作する必要があります(HTMLインラインで表示する前に変更しない限り)。
電子メールを「email.mhtml」として保存してから、TWebBrowserに読み込みます。 ロードするNavigateメソッドを使用します。
その後、ブラウザは必要なすべてを行います。 テキストはテキストが存在する場合はシンプルテキストとして読み込まれますが、HTML本体の場合は優先度が適用されます。
私は本当に残念ですが、レミー・ルボーの答えを修正することができますが、現時点では私は正しいと彼は間違っています。 私の目の涙でそれを言う... ガンビット
残念ながら、Pbear htmlviewerはDelphi Xeをサポートしていません。他のサードパーティのHTMLビューアについて知っていますか? – Hesi
このHTmlビューアのupdatdバージョンが見つかりました。ご助力ありがとうございます 。 – Hesi