0
自分のデータベースを使用して2人以上の人に電子メールを送信します。だから私はループを使って電子メールを送る。 (mail_data.Rows [1] [0])コードはsmtp.Send(mm)の前に停止します。 2人目のメールは正確です。なぜコードがそこで停止するのかわかりません。代わりに、各受信者に個別の電子メールを送信するsmtpがforループで動作していません
private void Email()
{
//get the data from database
DataTable data = GetData();
DataTable email_data = GetEmailData();
data.TableName = "Employee_Data";
....
String from = "[email protected]";
for (int i = 0; i <= email_data.Rows.Count; i++)
{
String to = email_data.Rows[i][0].ToString();
using (MailMessage mm = new MailMessage(from, to))
{
this.WriteToFile(to);
using (SmtpClient smtp = new SmtpClient())
{
mm.Subject = "Fresh NSO Updated List";
mm.AlternateViews.Add(body);
mm.Attachments.Add(new Attachment(new MemoryStream(bytes), "NSOList.xlsx"));
mm.IsBodyHtml = true;
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential();
credentials.UserName = "[email protected]";
credentials.Password = "aa";
smtp.UseDefaultCredentials = true;
smtp.Credentials = credentials;
smtp.Port = 587;
this.WriteToFile("beforeSend");
Thread.Sleep(1000);
//just stop here on second loop,
smtp.Send(mm);
this.WriteToFile("Sent!");
}
}
}
}
停止したらどういう意味ですか?例外がスローされますか?それは送信に掛かっていますか?本当にこの本当のパスワードをこのStack Overflowの質問に埋め込んでいましたか?恐ろしいアイデア。すぐにパスワードを変更する必要があります。 – mason
別々のメッセージの代わりに、単一の電子メールのBCCフィールドにすべての受信者を追加するだけではいけませんか? – Andy
@mason oh yeah..これは私がこの1つを見た直後に変わる間違いだった。コードを実行すると、2回目のforループでsendを停止しました。 – Scarlett