2014-01-08 20 views
0

當我的程序讀取特定表並向8個用戶發送電子郵件時,如果有8個用戶,則應該收到一封電子郵件。 它應該只發送一封電子郵件給每個用戶。 不是每個用戶的8封電子郵件。 這是我的代碼:在每個循環後添加郵件地址

 comm.CommandText = "SELECT * FROM tblRent WHERE DateIn < " + ImorgenTicks + " AND Status = 'Out' AND Trainee IS NULL"; 

     SqlDataReader read = comm.ExecuteReader(); 
     if (read.HasRows) 
     { 
      while (read.Read()) 
      { 
       string mail = read["Mail"].ToString(); 
       try 
       { 
        message.To.Add(mail); 
        //email 
        smtp.Send(message); 
       } 
       catch 
       { 
        MessageBox.Show("Text"); 
       } 

      } 
     } 

我在網上搜索,發現了一些解決方案,還沒有得到他們的工作。

+0

您是在哪裏創建消息的? –

+0

爲什麼每個用戶8封郵件?我只在返回的每條記錄上看到一個循環。如果這是表格,則爲每個用戶創建一個郵件。如果您只想發送一個移動發送郵件代碼的循環。 –

+0

請參閱解決方案。 這不是重複,因爲我看錯了地方。這是message.to.clear()我失蹤了: - \ –

回答

2

看來你在每次迭代時都在同一個MailMessage上添加多個地址。您需要清除message.To集合或在每次迭代中創建一條新消息

while (read.Read()) 
{ 
    string mail = read["Mail"].ToString(); 
    try 
    { 
     message.To.Clear(); 
     message.To.Add(mail); 

     //email  
     smtp.Send(message); 
    } 
    catch 
    { 
     MessageBox.Show("Text"); 
    } 
} 
+0

謝謝你的幫助。 –

相關問題