2008-09-11 16 views
7

私はWindowsフォーム(.NET 3.5)アプリケーションに取り組んでいます。このアプリケーションには、発生する可能性のある(天国禁止の)例外をキャッチする組み込みの例外ハンドラがあります。私は、例外ハンドラが "Error Report"ボタンをクリックして、FogBugzの電子メールアドレスに電子メールを送信するようにユーザに促すことができるようにしたいと思います。.NETアプリケーションから電子メールを送信する最も良い方法は?

これを行うにはどのような方法がありますか、気にする「嫌な思い」はありますか?

答えて

3

hereのようにSmtpClientクラスを使用します。
gotchasはありません。メールを送信するのは簡単です。

+3

smtpを使用して1000人のユーザーにメールを送信する必要がある場合、どの程度スケーラビリティがありますか? smtpサーバーが浸水しないように、速度を落とすために余分なコードを書く必要がありますか? – Haoest

1

また、System.Net.Mailが提供する多くの便利な機能を備えたサードパーティ製のaspNetEmailライブラリをチェックアウトすることもできます。

2

制御された環境では、SmtpClientを使用するが答えになります。しかし、ユーザーのマシンでは、送信するSMTPサーバーが必要です。

ユーザーにSMTP資格情報の入力を求めることができますが、これはあなたのケースでは実用的ではないと思います。ユーザーとしては、ランダムなアプリ(SPAMと思う)に自分のSMTPクレデンシャルを提供したくありません。また、独自のSMTP認証情報をアプリにハードコードしたくない場合は、悪意のあるユーザーがこれらの認証情報を盗聴し、サーバーを使用して迷惑メールを送信することは些細なことです。

理想的には、ユーザーのメールエージェントを使用してメールを送信することができます。 mailto:URLを作成して実行できると思っていましたが、メッセージの本文または添付ファイルを指定できるかどうかはわかりません。

+0

構文はmailto:[email protected]?subject = Hello&body = World!です。パラメータはURLエスケープする必要があります – rpetrich

6

お客様のクレデンシャルを心配する必要はなく、Estebanの推奨どおりにSmtpClientを使用するだけです。設定時に有効なSmtpサーバURLを提供するユーザが必要ですが、ほとんどのISPは匿名のsmtpを許可しています。ユーザが自分のISPのURLをsmptpサーバに置く限り人々は何の問題もないでしょう。

注:.configファイルには、SmtpClientオブジェクトの構成オプションを格納するための事前定義セクションがあります。そこに設定を入れると、電子メールを送信するときにコード内に明示的に何も設定する必要はありません。セクションの例は次のとおりです。

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="smtp.somewhere.com.au" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

ユーザー名とパスワードはオプションです。 Intellisenseは、設定ファイルのこれらの部分に対して機能します。

編集:私のコード例を少し修正。

+0

ちょっと、ちょっと!私の名前を正しく綴ってください。ありがとう、エステバン –

2

あなたはFogbugzを使用していると述べました。

は、いくつかのサンプルコードは、私はあなたのFBをインストールしたディレクトリだと思い、周りにありhttp://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for-the-FogBugz-API.aspx?isl=59722

を試してみてください。 私はMichael Pryor re:licensingと確認しました。彼はコードを使用しても問題ないと言いましたが、YMMVのでチェックします。

これは良い出発点です。

0

hereのようにSmtpClientクラスを使用します。 gotchasはありません。メールを送信するのは簡単です。

広範なSystem.Net.Mail FAQは、hereである。

関連する問題