C# 从GridView发送电子邮件

C# 从GridView发送电子邮件,c#,asp.net,C#,Asp.net,我正在尝试发送GridView中列出的所有电子邮件,但由于某些原因,电子邮件无法发送出去。我怀疑我的发送功能(smtpClient.Send(mailMessage))不起作用或者我丢失了一些东西。请帮助我,因为我已经花了很多时间来解决这个问题。谢谢 protected void chkAll_CheckedChanged(object sender, EventArgs e) { foreach(GridViewRow gr in GridView1.Rows) {

我正在尝试发送GridView中列出的所有电子邮件,但由于某些原因,电子邮件无法发送出去。我怀疑我的发送功能(smtpClient.Send(mailMessage))不起作用或者我丢失了一些东西。请帮助我,因为我已经花了很多时间来解决这个问题。谢谢

protected void chkAll_CheckedChanged(object sender, EventArgs e) 
{ 
    foreach(GridViewRow gr in GridView1.Rows) 
    { 
        CheckBox cb = (CheckBox)gr.FindControl("chkItem"); 
        if(((CheckBox)sender).Checked) 
            cb.Checked = true; 
        else 
             cb.Checked = false; 
    } 
} 

protected void Button3_Click(object sender, EventArgs e) 
{ 
    StringBuilder sb = new StringBuilder(); 

    foreach(GridViewRow gr in GridView1.Rows) 
    { 
        CheckBox cb = (CheckBox)gr.FindControl("chkItem"); 
        if(cb.Checked) 
        { 
            sb.Append(GridView1.DataKeys[gr.RowIndex]["Email"].ToString()); 
            sb.Append(","); 
        } 
    } 

    //Create instance of main mail message class. 
    System.Net.Mail.MailMessage mailMessage=new System.Net.Mail.MailMessage(); 

        mailMessage.From = new System.Net.Mail.MailAddress(
                   System.Configuration.ConfigurationManager
                                 .AppSettings["fromEmailAddress"]); 

        mailMessage.Priority = System.Net.Mail.MailPriority.High; 
        //Text/HTML 
        mailMessage.IsBodyHtml = false; 
        mailMessage.Body = "Hello, here is new email"; 
        mailMessage.Subject = "RCA APPROVAL IS REQUIRED"; 

        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); 
        } 
    }
protectedvoid chkAll\u CheckedChanged(对象发送方,事件参数e)
{ 
foreach(GridView1.Rows中的GridViewRow gr)
{ 
复选框cb=(复选框)gr.FindControl(“chkItem”);
如果(((复选框)发件人)。选中)
cb.Checked=真;
其他的
cb.Checked=假;
} 
} 
受保护的无效按钮3\u单击(对象发送者,事件参数e)
{ 
StringBuilder sb=新的StringBuilder();
foreach(GridView1.Rows中的GridViewRow gr)
{ 
复选框cb=(复选框)gr.FindControl(“chkItem”);
如果(cb.选中)
{ 
sb.Append(GridView1.DataKeys[gr.RowIndex][“Email”].ToString());
某人加上(“,”);
} 
} 
//创建主邮件消息类的实例。
System.Net.Mail.MailMessage=new System.Net.Mail.MailMessage();
mailMessage.From=new System.Net.Mail.MailAddress(
System.Configuration.ConfigurationManager
.AppSettings[“fromEmailAddress”]);
mailMessage.Priority=System.Net.Mail.MailPriority.High;
//文本/HTML
mailMessage.IsBodyHtml=false;
mailMessage.Body=“你好,这是新邮件”;
mailMessage.Subject=“需要RCA批准”;
System.Net.Mail.SmtpClient SmtpClient=新系统.Net.Mail.SmtpClient();
尝试
{ 
smtpClient.Send(mailMessage);
回复。写(“电子邮件已成功发送。”);
} 
捕获(例外情况除外)
{ 
响应。写入(例如消息);
} 
}

您需要将
邮件的
地址设置为

您可能希望这样做:

protected void Button3_Click(object sender, EventArgs e) 
{
    MailMessage mailMessage=new MailMessage(); 

    foreach(GridViewRow gr in GridView1.Rows) 
    { 
        CheckBox cb = (CheckBox)gr.FindControl("chkItem"); 
        if(cb.Checked) 
        { 
            //sb.Append(GridView1.DataKeys[gr.RowIndex]["Email"].ToString()); 
            //sb.Append(","); 

            //SETUP THE EMAIL ADDRESSES TO WHICH YOU WANT TO SEND EMAIL
            mailMessage.To.Add(new MailAddress(
                     GridView1.DataKeys[gr.RowIndex]["Email"].ToString()));
        } 
    } 

此外,如果您的
SMTP
服务器需要身份验证,您还需要提供
凭据。或者您可以将所有设置放入web.config中的
标记中,因为您没有向任何人发送电子邮件

使用gridview上的选定地址设置mailMessage.To属性的值

另外,请检查您的SMTP服务,可能需要提供凭据并启用SSL