2013-04-10 179 views
-3

我寫它發送郵件給管理員每當用戶添加從前端的內容審覈代碼發送重複的郵件.....問題是有時候管理員獲取相同內容的兩封郵件。下面如何避免在C#

是我的代碼

  MailMessage mail = new MailMessage(); 

      string mailto = ConfigurationManager.AppSettings["adminStoryEmail"].ToString(); 
      mail.To.Add(mailto); 
      //mail.To.Add("[email protected]"); 
      mail.From = new MailAddress(ConfigurationManager.AppSettings["fromEmail"]); 
      mail.Subject = ConfigurationManager.AppSettings["email_subject"]; 
      if (uploadedpath != "") 
      { 
       mail.Body = "Email ID : " + txtEmail.Text + "<br /> Title : " + txtStoryTitle.Text + "<br />" + " Download : " + " http://www.achievewithdell.in/uploads/" + uploadedpath + "<br />"; 
       if (story != "") 
       { 
        mail.Body += "New story has been added" + " http://www.achievewithdell.in/admin/ManageStory.aspx"; 
       } 
      } 
      else 
      { 
       mail.Body = "Email ID : " + txtEmail.Text + "<br /> Title : " + txtStoryTitle.Text + " <br />"; 
       if (story != "") 
       { 
        mail.Body += "New story has been added" + " http://www.achievewithdell.in/admin/ManageStory.aspx"; 
       } 
      } 
      mail.IsBodyHtml = true; 

      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = ConfigurationManager.AppSettings["smtp_host"]; //Or Your SMTP Server Address 
      smtp.Port = 25; 
      smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["smtp_userid"], ConfigurationManager.AppSettings["smtp_password"]); //Or your Smtp Email ID and Password 
      smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 

      smtp.Send(mail); 
+4

表現出一定的代碼請! – wizzardz 2013-04-10 06:33:41

+0

代碼請........ !! – Darshan 2013-04-10 06:33:50

+0

代碼在哪裏! – tariq 2013-04-10 06:33:53

回答

0

調試,並確保SMTP發送()方法不叫兩聲,把一個破發點上線。

0

有時你說的電子郵件被髮送兩次。這將暗示你給我們的代碼是好的,問題可能在於調用該代碼的原因。你可以消除重複

一種方法是排隊你的郵件被髮送,也許在數據庫中(存儲:對,從,主題,正文等)。然後週期性地重複發送郵件,忽略重複郵件並標記已發送的郵件,以免再次發送。

未能通過重構你的應用程序那樣,因爲其他海報建議,拿出你的調試器,並設置一個斷點。根據您的Visual Studio版本,可以在第2次在斷點處使用Breakpoint Hit Count所以你只有土地。