質問する
164 次
2 に答える
3
チェックボックスをオンにした後、新しい MailMessage を作成してみてください。今行っていることは、繰り返しごとに同じメッセージを再利用し、以前のものをクリアせずに新しいメール アドレスを追加することです。
protected void btnSendEmail_Click(object sender, EventArgs e)
{
foreach (GridViewRow gr in GridView1.Rows)
{
CheckBox cb = (CheckBox)gr.FindControl("chkItem");
if (cb.Checked)
{
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add(new MailAddress(GridView1.DataKeys[gr.RowIndex]["Assigned_To"].ToString()));
mailMessage.From = new System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings["fromEmailAddress"]);
mailMessage.Priority = System.Net.Mail.MailPriority.High;
//Text/HTML
mailMessage.IsBodyHtml = false;
string mySubURI = HttpContext.Current.Request.Url.AbsoluteUri.ToString().Replace("Test.aspx", "ABC.aspx");
mySubURI += String.Format("&ID={0}", gr.Cells[0].Text);
mailMessage.Body = "this is just test... " + " " + Environment.NewLine + mySubURI;
mailMessage.Subject = "Test";
System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
try
{
smtpClient.Send(mailMessage);
//Response.Write("<B>Email Has been sent successfully.</B>");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
于 2012-10-25T20:52:18.097 に答える
0
あなたの問題はこれだと思います.メールメッセージを一度作成していますが、すべての行で再利用しています。したがって、すべてのグリッド行に対して、新しい To エントリを追加します...しかし、まだ古いものがあります!
于 2012-10-25T20:53:48.717 に答える