- PR -

指定日にメール送信をする一般的な方法について

投稿者投稿内容
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-05-23 14:30
こちらの会議室にする質問ではないかもしれませんが教えて下さい。

Webアプリで登録された指定日になったらメールを送信するという機能を検討しているのですが、どういう方法が一般的なのでしょうか?
具体的には、Webアプリから管理者がユーザー毎に有効期限を登録し、
その期日になったらそのユーザー宛にメールを送信するというものです。
ぱっと思いつくのは、Webアプリとは別のアプリをサーバーのスケジューラでキックするというものなのですが。
これが一般的かどうかご教示下さい。

<環境>
Windows Server 2003, Visual Studio 2005 SP1, .NET Framework 2.0
HIRO
大ベテラン
会議室デビュー日: 2002/06/21
投稿数: 109
投稿日時: 2007-05-23 15:18
何を持って「一般的」として良いかわかりませんが、私もaniさんと同じ方法で処理すると思います。
_________________
--------------------------------------------
HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています
HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-05-23 16:41
HIROさん、返信ありがとうございます。

すみません。「一般的」というのは定義があいまいでしたね。
他の方はどう作るのかを知りたかったもので。

引用:

私もaniさんと同じ方法で処理すると思います。



スケジューラでキックするという方法はおかしくはないのですね。
よかったです。

ちなみに、アプリではなくサービスコンポーネントにするというのはどうですか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-05-23 16:49
引用:
ちなみに、アプリではなくサービスコンポーネントにするというのはどうですか?



Serviced component にしたとして、それを kick する application が必要ですよね。

Serviced component にして Web application と Windows (console) application で logic を共有するのは問題ないと思いますよ。
_________________
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-05-23 17:13
ちゃっぴさん、返信ありがとうございます。

引用:

Serviced component にしたとして、それを kick する application が必要ですよね。



サービスを自動にすればキックの必要がないかなと思いまして。
(定時になったかを常にチェックし、定時になったらメール送信(期限チェック含む)の処理を走らせるサービス)
あまりメリットはないですかね?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-23 18:23
とりあえず、すぐに出す。
メールが、送ったとほぼ同じ時に到着することを期待してはいけない。
んなこと期待するから、到着遅延のお詫びを出さなきゃいけない。自分とこのシステム以外に阻害する要因はある。今の現象を絶対だと思っちゃいけない。
_________________
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-05-23 18:41
引用:

Jittaさんの書き込み (2007-05-23 18:23) より:

とりあえず、すぐに出す。
メールが、送ったとほぼ同じ時に到着することを期待してはいけない。
んなこと期待するから、到着遅延のお詫びを出さなきゃいけない。自分とこのシステム以外に阻害する要因はある。今の現象を絶対だと思っちゃいけない。


Jitta さん、勘ぐりすぎなんじゃないかなあ。
(と思っている僕も勘ぐりすぎなのかもしれませんが)

ani さんは別に「送ったとほぼ同じ時に到着することを期待」してなんかい
ないんじゃないでしょうか。
単に「登録された指定日になったらメールを送信する」と言っているだけで。

たとえばね、管理者がユーザーの有効期限を1年後の 2008年5月23日
に設定したとしましょう。
Jitta さんの言う「すぐに出す」だと、管理者が設定した「今」ユーザーにメー
ルが送られますよね。でもユーザーからしてみれば「何で一年も後の有効
期限切れメールが(切れてもいないのに)届くんだよ」となるはず。
だからこそ、指定した日付になってからメールを送る必要がある。遅延につ
いてはこの際考慮されていないのでまた別の問題だし、遅延してしまう酔
うんだと思ったら日付を期限切れの一週間前とかに設定しておくのもアリ
だと思いますし。

Jitta さんなりにいろいろ考えて出た話なのだと思うのだけど、ちょっと話
題がぶっ飛びすぎというか、不必要なところまで頭の中でコネコネしすぎて
いたりしませんか?
いや、コネコネするのはいいんだけど、その課程を吹っ飛ばした結論だけ
ぽろんと出されても「……はい?」ということになりそうな気がするので。
(その辺の課程も含めていろいろ考えたのだろうな、と思ったので「勘ぐり
すぎ」と書いてみました)

と、それだけだとあんまりなので。

メールを送信する方法は ani さんの考えた方法でかまわないと思います。
一般的かどうかにこだわる必要はあまりないような気がしますし。
タスクスケジューラーでもサービスでも、一長一短があると思いますし、作
成しているシステムに合った方法であればいいのかなと。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-23 19:06
ごめん

何月何日にこの内容で送ります、をすぐに送る。
で、指定日にも送る。


夕方に送った「帰るメール」が翌朝に届くことが、半年に1〜2度あります。
メールが、どれくらいの時間的精度で届けばよいのかわかりませんが、先日のNTT東のようなことも有ります。
届くことが前提なシステムならば、インフラがまだ整っていないと思います。
_________________

スキルアップ/キャリアアップ(JOB@IT)