私は似たようなことをしました。しかし、Quartz.NET を使用して、電子メールを送信できるコントローラー URL を「ポップ」しました。
Quartz.Net でスケジュールできるジョブとトリガーを用意します。
メールを送信できるコントローラーを MVC サイトに作成します。EmailController のようなもの
送信する電子メールの種類ごとに ActionMethod を用意します。
EmailController.SendWelcomeEmail(int id)
アクション メソッドで、データベースにクエリを実行し、任意のロジックを実行し、最終的に MVCMailer を呼び出して電子メールを送信します。
これを Quartz.Net から呼び出すには、 WebClient() を使用するだけです
var client = new WebClient();
client.DownloadString("yourwebsitehere/Email/SendWelcomeEmail/99999");
ServicePointManager.DefaultConnectionLimit
スケーリングの問題が発生した場合は、 を高い値に設定することを忘れないでください。
http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit(v=vs.110).aspx
これがあなたを導くのに役立つことを願っています。重要なポイントは、ここには 2 つのプロセスが含まれているということです。あなたのウェブサイトと、Quartz.Net をホストする二次プロセス。基本的に、HttpContext が再び有効になるように、asp.net パイプラインを介して戻る要求を取得する必要があります。
MvcMailer を介して適切に非同期でメールを送信することについての私の回答には、いくつかの追加情報があります。
非同期電子メールを送信する