0

毎月クライアントに電子メールで多数のレポートを送信するASP.NETMVCアプリケーションがあります。各電子メールには、毎月の明細書が添付されています。現在、約70のクライアントがいますが、これは時間の経過とともに増えることを願っています。多くの電子メールが送信されないという問題が発生しています。System.Net.MailAPIを使用します。

これが私たちが使用しているコードです、より良いアプローチはありますか?

 foreach(string client in clients){

    SmtpClient client = new SmtpClient("server.com");

    BackgroundWorker emailInvoker = new BackgroundWorker();
    emailInvoker.DoWork += delegate
    {
      // Delay to prevent flow control, try later Relay error
      Thread.Sleep(TimeSpan.FromSeconds(2));
      client.Send(message);
    }

   emailInvoker.RunWorkerAsync();
 }
4

2 に答える 2

1

多数の電子メールが送信されないという問題が発生しています。

それらのいくつかが送信されないよりも大きな (そして可能性が高い) 問題は、それらの多くが配信されないことです。

...より良いアプローチはありますか?

ほとんどの場合。Jeff Atwood は、このブログ投稿で電子メールの送信に関する多くの問題について説明しています。その投稿はほぼ 3 年前のものであり、それでも最初のコメントは消印の使用を推奨しています。私は消印を使用しましたが、コードを介して適切な価格で電子メールを送信するという問題を確実に処理します. とはいえ、現在市場にはより良いソリューションがあり、私の会社が現在非常に切り替えたいと思っているのはmandrillです。少し良い価格設定、素晴らしい分析。

于 2013-03-21T15:39:59.270 に答える