ASP.NET で大量の電子メールをバッチ送信する最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/56975

  •  09-06-2019
  •  | 
  •  

質問

現在、データリーダーをループし、System.Net.Mail.SmtpClient の Send() メソッドを呼び出しています。これの問題は遅いことです。各メールの送信には約 5 ~ 10 秒かかります (これは私のホストにだけ問題がある可能性があります)。次のように、web.config ファイルのexecutionTimeoutのデフォルト(デフォルトは90秒)をオーバーライドする必要がありました。

 <httpRuntime executionTimeout="3000" />

1 つの注意点:私は共有ホストを使用しているため、PickupDirectoryFromIis オプションを使用して送信することは不可能だと思います (少なくとも、このオプションをオンにするとエラーが発生しました)。

役に立ちましたか?

解決

メールを非同期で送信できます。そうすれば、タイムアウトによって送信が中断されることはありません。

この記事は、それを始めるのに役立ちます。 C# でメールを非同期に送信する.

ここには別のアプローチがあります。 http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx

もちろん、商用クライアントもいくつかありますが、私が試してみて推奨できるのは次のとおりです。 http://www.aspnetemail.com/

他のヒント

間違いなくバックグラウンドワーカープロセス上で生成され、非同期で実行されるようになります。

ところで、電子メールごとに 5 ~ 10 秒というのは、私にとっては非常に遅いように思えます。私のサーバーでは、電子メールごとにほんの数秒しかかかりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top