0

GridView にリストされているすべての電子メールを送信しようとしていますが、何らかの理由で電子メールが送信されません。Send 関数 (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); 
        } 
    }
4

2 に答える 2

2

Toのアドレスを設定する必要があります。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サーバーが認証を必要とする場合は、Credentialsも提供する必要があります。または、ここに示されているように、すべての設定をweb.config<system.net><mailSettings>のタグに入れることができます。

于 2012-10-24T01:50:33.017 に答える
0

誰にもメールを送らないからです。

グリッドビューで選択したアドレスを使用して、mailMessage.To プロパティの値を設定します。

また、SMTP サービスを確認してください。資格情報を提供して SSL を有効にする必要がある場合があります。

于 2012-10-24T01:57:21.713 に答える