6

埋め込み画像と代替テキスト部分を含む HTML 電子メールを生成する良い例を知っている人はいますか? HTML で表形式のレポートを生成する必要があり、ロゴやその他の画像を埋め込みたいと考えています。

私は Indy がいくらかの作業でこれを行うことができると信じていますが、出発点として誰かが私に良い例を教えてくれることを望んでいました. Indy 以外のライブラリを使用することにもオープンであり、ソースが提供されている商用ソリューションが利用可能です。コストよりも品質と実装時間の方が重要です。このソリューションは、メール エクスチェンジャーへの SMTP ベースの配信もサポートする必要があります。

私の希望リストのもう 1 つの項目は、FastReports、TRichView、または同様のツールを利用して HTML メッセージ コンテンツを生成できるようにすることです。両方に利用できる HTML 出力フィルターがありますが、テストを行う機会はありませんでした。この件に関するご意見をお待ちしております。

前もって感謝します!

デビッド

4

5 に答える 5

10

Indy の Web サイトで次の記事を読んでくださいTIdMesaage。HTMLに入力する適切な方法が説明されています。

HTML メッセージ

新しい HTML メッセージ ビルダ クラス

于 2009-10-15T00:50:09.973 に答える
1
function data64(const filename:string): ansistring;
// uses Classes, IdGlobalProtocols, EncdDecd;
const
  crlf = #13#10;
begin
  result := '';
  with TIdMimeTable.Create do
  try
    result := 'data:'
      + GetFileMIMEType(filename) + ';';
  finally
    Free;
  end;
  with TMemoryStream.Create do
  try
    LoadFromFile(filename);
    result := result + 'base64,' + crlf
      + EncodeBase64(Memory,Size);
  finally
    Free;
  end;
end;
于 2013-01-14T22:24:06.143 に答える
1

最近は Clever Component の電子メール クライアントを使用していますが、無料ではありません。

TurboPower Internet (OpenSource) コントロールは、以前はうまく機能していました。

于 2009-10-15T10:02:11.890 に答える
0

私たちは数年前に Indy と埋め込まれた cid: 画像を次のように試しました: https://forums.codegear.com/thread.jspa?threadID=17473

別のメールリーダーがバーフを行うたびに、安定することはありませんでした (Outlook で動作するようになった場合、Thunderbird はそれを受け入れませんでした、または Outlook Express など)。

最後に、 AspNetEmailを使用して .NET でそれを実行したところ、魅力的に機能しました。

--jeroen

于 2009-10-14T22:30:17.393 に答える
0

それはすべて、サポートできるリモート メール クライアントの数によって異なります。SMTP/Mime をサポートするよく知られた Delphi ライブラリは妥当な仕事をすると思いますが、メール ユーザーの 1 人が受信者が適切にフォーマットされた電子メールを表示できないことに気付いた場合、サポートの問題が残る可能性があります。

Jacob Palme のサイトにアクセスすることをお勧めします。これにより、遭遇する可能性のある問題のいくつかを知ることができます。少し時代遅れかもしれませんが、要約すると、複雑な MIME 電子メールを作成して送信すると、構文を適切に処理できないメール クライアントが 1 つ以上発生します。このサイトには、調査およびテストできるいくつかの有用な構築例へのリンクもあります。

私たちが行ったように、独自のロジックを作成する必要があることを意味しているわけではありません。優れたパッケージ ソリューションは、ほとんどの場合に成功する可能性があります。私たちは数年前にこれを処理する独自の Delphi コードを作成したので、現在棚にあるものに関する最新情報を提供するために他の人に任せます。

于 2009-10-14T22:46:35.917 に答える