1
4

2 に答える 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 に答える