C#っていうかオブジェクト指向的なことになるんですが
staticにするべき関数の定義について教えてください。

ちなみにWebアプリで考えるとしてです。
例えばメール送信クラスを作ったとして、これはstaticにすべきでしょうか?しないほうがいいでしょうか?
Webアプリなので、この関数自体は同時に呼び出される可能性はあります。

こういうのに限らず、一体どういったクラス内のメソッドをstaticにしていいかよくわかりません。
なにか基準があるんでしょうか?
どこかでユーティリティっぽいのはstaticでつくっとけ
みたいに書いていたんですが、その線引きもいまいちわからず。

何か明確な定義はあるでしょうか?

元々ASP(非.net)をしていて、最近.net(C#)にしたので
オブジェクト指向というのがまだあまりよくわかっていないもので。
ASpなら関数なのでstaticもなにもないんですが・・・