0

Freemarker テンプレートを使用して電子メールを送信する JSF 2.x アプリケーションがあります。

私の問題は次のように最もよく説明されています。

  • Freemarker テンプレートから、JSF Web サイトでホストされているメディア/画像を参照します。
  • 私のリソースは「jsf2.xresourcesフォルダーにあります。
  • もちろん、<h:graphicImage library="images" name="logo.gif" ...Freemarker テンプレートの構文は使用できません...

誰かが解決策を持っていますか?

メールに画像を添付すればいいのですか?

それとも、画像/メディアに 2 つの場所を使用する必要がありますか (1 つは公開され、もう 1 つはresourcesフォルダーの下にあります)。

4

1 に答える 1

1

ここにはいくつかの無関係な質問があるようです。

1 つの質問は、電子メールの URL を介して画像を参照する VS を添付することです。これが決まったわけではないと思います。多くのことに依存します。画像が単なる装飾ではなく、受信者がメール アーカイブに保持したいもの (図など) である場合は、画像の URL が数か月または数年後も機能することを保証できない限り、埋め込みが唯一の方法です。 . 飾りだけだと……難しい。前回確認したとき、メール クライアントはデフォルトで URL からの画像の読み込みをブロックします。ユーザーはそれらまたは何かをクリックして読み込みを有効にする必要がありますが、送信者からの画像を永続的に有効にできる場合があります。しかし、画像が重要でない場合、ほとんどのユーザーは気にもかけず、決して見ることはありません。この点では、画像を添付することで防弾効果が高まりますが、メールのサイズが大きくなります (あまり丁寧ではありません)。

別の質問は、JSF/FreeMarker 関連のものです。私はJSFを知りません...しかし、それがひどい設計でない限り、リソースのURLを取得したり(メールで参照したい場合)、リソースを読んだり(メールに添付したい場合)。次に、FreeMarker テンプレートから、データモデルに入れたオブジェクトの Java メソッドを呼び出すことができるため、FreeMarker が URL または base64 でエンコードされたコンテンツを取得できるヘルパー オブジェクトを追加できます。(データモデルに追加できない/追加したくない場合でもTemplateDirectiveModelTemplateMethodModelEx実装を作成して、のように取り込むことができます<#assign resourceContentB64 = 'com.example.ResourceContentB64Directive'?new()>。)

于 2012-08-20T08:48:54.623 に答える