2012-03-26 11 views
1

asp.netでメーリングリストを作成したいと思います。しかし、それらのすべてのそれらの記事.IN同じであったが、私はこのコードをasp.netで大量メールを送信するためのメーリングリストの作成

var list = from c in context.Emails orderby c.EmailAddress select c.EmailAddress; 
MailMessage mail = new MailMessage(); 
foreach (var c in list) 
{ 
    try 
    { 

     mail.From = new MailAddress(txtfrom.Text); 
     mail.To.Add(new MailAddress(c.ToString())); 
     mail.Subject = txtSub.Text; 
     mail.IsBodyHtml = true; 
     mail.Body = txtBody.Text; 
     if (FileUpload1.HasFile) 
     { 
      mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName)); 
     } 
     SmtpClient smtp = new SmtpClient(); 
     smtp.Send(mail); 
    } 
    catch (Exception) 
    { 

    } 
} 

を使用する必要がありますので、質問は本当に役に立つと電子メールの多くを送信することに成功したこの方法で、ということであると書かれていましたか? (たとえば、2000の電子メール?)これらの記事の は、私は各期間の後に遅延を置くべきであると書かれていた(例えば、50の電子メールを送信した後など)、私は電子メールを送信する間に遅延を作る方法を知りたい。私は誰かが私のasp.netでオープンソースのメーリングリストを与える場合、私は思っていた このプロジェクトを作成するperfessional方法を探しています

答えて

0

複数のスレッドを、ここでは一例です使用してみてください。私は、少なくともこの

var list = from c in context.Emails orderby c.EmailAddress select c.EmailAddress; 
MailMessage mail = new MailMessage(); 
try 
{ 

    mail.From = new MailAddress(txtfrom.Text); 
    foreach (var c in list) 
    { 
     mail.To.Add(new MailAddress(c.ToString())); 
    } 
    mail.Subject = txtSub.Text; 
    mail.IsBodyHtml = true; 
    mail.Body = txtBody.Text; 
    if (FileUpload1.HasFile) 
    { 
     mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName)); 
    } 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Send(mail); 
} 
catch (Exception) 
{ 
    //exception handling 
} 

のようなコードを変更したいmsdn forum sendin bulk mails

+0

私はこれを良い方法で使う前に使用しましたが、パフォーマンスに問題がありません。私にとって重要なのは、すべての電子メールを正常に送信していることです。 –

1

は、smtp.Send()は一度だけ呼び出されます。

+0

これは私の問題ではありません。もう少し前向きなやり方を意味する –

0

おそらく、スクリプトの実行には時間制限があります(30秒など)。私は2つの段階に分かれ勧め:あなたが必要

  1. 形式の電子メールおよび(ステータスで - 「送らない」)データベーステーブルにそれらを書く
  2. 別のスクリプト/プログラムを実行し、N電子メールを選択しますテーブルから、
  3. 待機/スリープN
  4. 繰り返し第二ステップ

「送られた」これは、あなたがほとんど送信することができますようにそれらを送信し、マーク無制限の電子メールの数(タイムアウトなし) また、あなたのホスティングで1時間/ 1日あたりの電子メールを送信するのにいくつかの制限がある場合は注意してください!

0

送信する電子メールの作業項目を作成し、それらをキューにプッシュします。次に、それらの電子メールを送信したい競合する消費者(別名ワーカー)を使用します。

0

aspアプリケーションでは、infoを使用してXMLを作成して保存するだけで済みます。

ファイルウォッチャーでWindowsサービスを使用します。このサービスは、XMLでリストの作成を検出して送信するだけです。

関連する問題