3

多言語 MVC Web サイト用の HTML およびテキスト メール テンプレートを保存する最適なオプションは何ですか?

  • リソース (EN/PT/FR 言語ごとに 1 つのリソース - それでも言語とサービス層を区別しますか?)
  • データベース (言語ごとに 1 列)
  • HtML ファイル - 言語ごとに 1 つのファイル (file-PT.html、file-EN.html)
  • Template.tt

目標は、ユーザーの待ち時間の遅延を減らすために、できるだけ早く電子メールを送信することです。

また、サービス層での送信は Web 層よりもはるかに優れていると思います。

Links は Absolute であるため、Views の必要性はあまり有用ではないと思いますが、Postal としての解決策はオプションですか? または、単に DB またはファイルから HTML 文字列を取得し、文字列タグをカスタム値に置き換え、IIS SMTP に送信してキューを処理するだけですか?

ありがとう。

4

3 に答える 3

1

私のプロジェクトでは、テンプレートを .cshtml ファイルのサービス レイヤーに保存して、構文を強調表示します。カルチャごとにファイル、つまり TemplateName.[en].cshtml を使用します。また、Razor エンジンを使用してテンプレートをレンダリングします。完璧に動作します。

于 2013-03-21T20:33:26.107 に答える
0

アプリケーションをホストするためにクラウドまたは分散環境を使用している場合。次に、サービスレイヤーを使用してデータを送信することをお勧めします。したがって、キューを使用して、送信ノードに作業を委任できます。それはあなたのパフォーマンスを向上させます。テンプレートのソースについては、テンプレートのフォーマット変更にどのように対応するかを考える必要があります。データベースを使ってサービス側でキャッシュしたほうがいいと思います。

于 2013-03-23T21:18:31.580 に答える
0

次のテーブル構造を持つデータベースに電子メール テンプレートを保存することをお勧めします。

CREATE TABLE emailTemplates (
    id INT IDENTITY(1, 1),
    body VARCHAR(max),
    title VARCHAR(max),
    lcid INT,
    /*and maybe tmplType INT if you have different template types*/
)

Thread.CurrentThread.CurrentCulture.LCIDこれにより、必要なテンプレートを見つけるために、テンプレートを渡す (または必要な culure ID でさえも) [および tmplType] をパラメータとして選択するだけで済みます。また、管理インターフェイス (ある場合) を使用して新しいテンプレートを編集および作成するか、コードを変更してサーバーに再デプロイすることなくデータベースに挿入することができます。もちろん、テンプレートテーブルをいくつかにマップList<your_template_class>してキャッシュに保存できるので、毎回データベースから引き出す必要はありません。

于 2013-03-19T13:20:12.657 に答える