3

応答をユーザーにすばやく返し、バックグラウンドで電子メールを送信するために多くのバリエーションを試しましたが、失敗しました。これが私が試したサンプルの1つです。

ThreadPool.QueueUserWorkItem(callback => 
                // It is important to put this line inside try catch otherwise it might crash the process 
                client.SendAsync(message, message)
                );

client.SendAsyncにブレークポイントを設定すると、この行が実行されるまでresposeはユーザーに送信されません。では、応答を待たずにバックグラウンドで電子メールを送信する適切な方法は何ですか。

更新:問題が発生したと思います。実際には、ステップスルーするまでasp.netスレッド(suspend)を停止するのはVSデバッガーです。上記のコードは私のシナリオで機能します。

4

3 に答える 3

1

メールの数とサイズによっては、ピックアップ フォルダーに書き込むことも検討してください。ローカルの IIS SMTP サーバーを使用して、スマート ホスト経由でメールを中継できます。実際には、これは私たちにとって非常にうまく機能しています。

于 2013-02-21T13:38:03.767 に答える
1

ASP.NET http://www.asp.net/web-forms/videos/how-do-i/how-do-i-send-email-asynchronously-with-aspnetを使用して電子メールを非同期的に送信する

于 2013-02-21T13:49:10.600 に答える