2012-03-26 39 views
1

我想通過asp.net創建一個郵件列表。我研究了很多關於它的文章。但他們都是這些。在文章同樣被寫了這樣的問題是,是這樣真正有用的和成功的發送大量的電子郵件,我應該使用此代碼創建郵件列表在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的開源郵件列表

回答

0

嘗試使用多線程,這裏是一個例子; msdn forum sendin bulk mails

+0

我以前使用過這種方法,但是我沒有任何性能問題。對我來說重要的是發送所有電子郵件成功 – 2012-03-26 07:00:35

1

我會改變這樣的代碼

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 
} 

至少,smtp.Send()被調用一次。

+0

這不是我的問題我想知道是否有任何其他方式來執行此項目?意味着更專業的方式 – 2012-03-26 07:06:27

0

也許,你有一些時間限制來運行你的腳本(即30秒)。我建議分爲2個步驟:

  1. 格式的電子郵件,你需要,並寫入到數據庫表(具有狀態 - 「不發送」)
  2. 運行另一個腳本/程序,選擇ñ電子郵件從表,發送並將其標記爲「已發送」
  3. 等待/睡眠ñ
  4. 重複第二步

這可以讓你幾乎送不限數量的電子郵件,無超時 另外 - 請注意,如果您在主機上每小時發送電子郵件有一定限制!

0

爲要發送的電子郵件創建工作項並將它們推送到隊列中。然後使用盡可能多的競爭消費者(又名工人),因爲你想發送這些電子郵件。

0

該asp應用程序只需要創建一個XML與信息並保存它。

與filewatcher一起使用windows服務。此服務僅檢測XML中列表的創建併發送。