100,000 通のメールを送信する必要があるため、プロセスを効率的にする必要があります。
Razor をテンプレート エンジンとして使用できるため、MvcMailer を使用しています。
私の問題:結果の電子メールは2つの部分にあります:
- みんなの共通部分
- 受信者ごとのカスタムパーツ
カスタム部分があるので、全員に新しいメールを作成する必要があります。しかし、MvcMailer はすべてのメールに対してビュー エンジンを実行しているため、共通部分が 100 000 レンダリングされ、これは受け入れられません。
これまでの私の唯一のアイデア:
プロセスの最初に共通部分をレンダリングするために EmailBody メソッドを使用します (この共通部分には「{USER-CONTENT}」のようなものがあります)。
string commonContent = mailer.EmailBody("Common");
メール本文にユーザー コンテンツのみを入力して実行する
myMail.Body = commonContent.Replace("{USER-CONTENT}",myMail.Body)
しかし、それはまだ汚い解決策です: Razor 内で独自のテンプレート言語を作成します。
もっと良いアイデアはありますか?