私はこの時代を探して、埋め込まれたソースファイルから電子メールテンプレートを使用して電子メールを送信するための明確な解決策を探していましたが、それでもこれに対する明確な答えは見つかりませんでした。
かみそりのビューは、電子メールのテンプレートとして使用するのに非常に便利です。
ビュー(cshtmlファイル)と各ビューのモデルを含むパッケージとしてクラスライブラリを作成しようとしています。そのクラスライブラリには、EmailSenderとしてのサービスもあります。
次に、そのクラスライブラリは、電子メールを送信するためにWebアプリケーションで参照されます。ライブラリは明らかに他のプロジェクトで再利用できます。
EmailSenderサービスには、メールの種類ごとにメソッドがあります。 Webアプリケーションはモデルを渡し、クラスライブラリは電子メールコンテンツを準備し(モデルを解析して表示し)、文字列コンテンツを返します。その文字列の内容はhtmlbodyメールとして送信されます。
私はこのRazorLightを見てきました library 。これは、コア2.0ではまだ完了または更新されていないようです。
私が交差した別の解決策は ここ です。このアプローチの問題は、電子メールテンプレートにモデルプロパティが含まれていないことです。基本的に、テンプレートには{0}、{1}などが含まれ、フォーマットを使用してモデルデータをテンプレートに解析します。テンプレートに多くのパラメータがある場合、どのパラメータがどれであるかを思い出すのは難しいでしょう。
私は最近この記事を見ました ASP.NET Core 2.1.0-プレビュー1:クラスライブラリのRazor UI
Core2.1.0でクラスライブラリにビューを追加できるようになることを示しています。これが解決策でしょうか?
それとも、これを達成するためのより良いアイデアがありますか?
私もこの種の問題に取り組んでいて、ウェブ上で解決策を見つけることができませんでした。それで、いくつかの調査の後、私はこの種のソリューションを実装することに成功し、ブログを書きました。あなたの解決策に合うかどうか、以下のリンクをチェックすることができます。
P.S.クラスライブラリでRazorUIを使用することも可能な解決策かもしれませんが、私はまだ試していません。