2011-08-15 7 views
0

イベントスケジューラを使用していません。asp.net mvcだけでイベントの4日前にリマインダを送信する必要があります。私はイベントの保存日付(Event_Start)を持っています。どうすれば助けてくれますか?イベントの電子メールリマインダを送信するasp.net mvc

I)は(コントローラーます。public voidリマインダーでクラスを作成しましたが、今イムは、あなたが決定した時点で、「リマインダー」のページをご覧/呼び出すためにスケジューラサービスを使用することはおそらく最高です

答えて

0

Reminder()メソッドは、データベースから取得するアイテムに従って4日間オフになったイベントの電子メールを送信する作業を行います。 System.Net.Mail.SmtpClientクラスを使用して、電子メールの実際の送信を行うことができます。

大きな問題は、パスを1日に1回実行する方法です。その他の不安は、実際の送信に時間がかかることがあり、web.configで許可されたリクエスト時間を考慮しないとタイムアウトする可能性があるということです。

これらのタイプのアクティビティでは、コンソールアプリケーションを作成し、サーバー上の毎日のWindowsスケジュールタスクを介してトリガーするほうが簡単です。

ここでは、MVCでこれを行う質問についての前回の説明があります。Send Email in Background

+0

私はSystem.Net.Mailを使用して電子メールクラスを作成しました – Alss

+0

これを別のサービスクラスにするとよいです。そうすれば、コンソールアプリケーションのような別の実装に行くことにした場合でも、再利用が可能です。 – Turnkey

+0

私の問題は、実際には、どのようなアイデアのようにそれを送信するためにデータベースから電子メールの詳細を入力するフォームを持っているのですか? – Alss

0

送信する必要のあるものとSystem.Net.Mailを使用して送信するものを決定するページを作成する可能性があります。その後、そのページに定期的にアクセスする簡単なバッチファイルを作成します(スケジュールはWindowsスケジュールジョブで処理できます)。

サービスとして実行されるタスクまたはスケジュールされたジョブとして実行されるタスクを作成しないと死んでしまった場合、もう1つの方法は、キャッシュの有効期限をジョブスケジューラとして使用することです。人々はしばらくの間ASP.NETでこれをやってきました。記事は古いですが、それはまだ大丈夫動作するはずです:あなたは、トリガ・イベントのチェック機能のためhttp://quartznet.sourceforge.net/を使用することができます

http://www.codeproject.com/KB/aspnet/ASPNETService.aspx

0

。これは非常に簡単で、このジョブのWindowsスケジュールタスクは不要です。

関連する問題