2017-04-17 45 views
1

我寫了一個簡單的控制檯文件在C#中,從Excel中讀取。 excel電子表格包含一個電子郵件地址列表,我正在循環查看這個列表併發送一封電子郵件給每個電子郵件。電子郵件正文在我的C#應用​​程序中發送兩次

當我運行我的應用程序時,應用程序發送一封電子郵件到Excel工作表中的第一個電子郵件地址,但當它到達第二個電子郵件地址時,它會發送兩次電子郵件正文,其中一封是第一封來自電子郵件第一封郵件。有人可以直接在我的循環中發現我的錯誤:

foreach (var email in File) 
    { 

      mailbody.AppendFormat("<p style='font-family: Arial, Sans-Serif;'> Hi</p>"); 
      mailbody.AppendFormat("<p style='font-family: Arial, Sans-Serif;'> Hey!</p>"); 
      Mailer.SendEmailMessage("[email protected]", email.email, "", "Test Header", "", mailbody); 





    } 
    Console.WriteLine("Finished Sending"); 


} 
+2

您使用的是foreach循環,並追加到而沒有將其復位外部聲明的變量...我只想移動該變量爲foreach循環 –

+0

如果你不想從身體第一次通過循環,你需要重置mailbody變量。可能在你的循環中,在做任何事之前。 –

+0

什麼是'Mailer.SendEmailMessage()'?如果這是你的代碼,它也可能有助於展示它。但其他人所說的話也應該解決這個問題。 –

回答

2

用每個地址創建一個新的郵件正文。

foreach (var email in File) 
{ 
    var mailbody = string.Empty; 

    ... 
} 
相關問題