遍历复选框列表并根据选择发送电子邮件

时间:2020-05-04 21:38:49

标签: c# asp.net

CheckBoxList选择(允许一个以上)。我试图找到一种方法来遍历所有选择。如果选中某个项目,它将发送并通过电子邮件发送给特定的收件人。可以选择多个项目。我该如何设置?以下是我所做的并且仅对选定的项目有效,但是如果我选择了1个以上的项目,它将无法正常工作。我只做了大约4个月的ASP / C#。感谢帮助。

ASP.net

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="3">
<asp:ListItem >Conceptual Object Model</asp:ListItem>
<asp:ListIteM >Application Communication Diagram</asp:ListIteM>
<asp:ListItem >Application / Functionality Matrix</asp:ListItem>
<asp:ListItem >Application and User Location Model</asp:ListItem>
<asp:ListItem >Data Model</asp:ListItem>
<asp:ListItem >Role/Application Matrix</asp:ListItem>
<asp:ListItem >Process Model / Activity Diagrams</asp:ListItem>
<asp:ListItem >One Boeing Capability Map (OBCM)</asp:ListItem>
<asp:ListItem >Other (list architecture models below)</asp:ListItem>
</asp:CheckBoxList>

C#

if (CheckBoxList1.SelectedValue == "Data Model")
{
    // Session["sess_GRPInbox"] = "email1.com";
    Session["sess_2ndEmailperson"] = "email2.com";
}
else
{
    Session["sess_2ndEmailperson"] = "";
}

if (CheckBoxList2.SelectedValue == "No")
{
    Session["sess_3rdEmailperson"] = "email3.com";
}
else
{
    Session["sess_3rdEmailperson"] = "";
}

Session["sess_GrpInbox"] = "email1.com";

Response.Redirect("EmailPage.aspx");

Emailer aspx.cs页面

MailAddress from = new MailAddress(Session["sess_GRPInbox"].ToString());
// MailAddress from = new MailAddress("email1.com");
// MailAddress to = new MailAddress(txtOriginatorEmail.Text.Trim());
MailAddress to = new MailAddress("email1.com");
MailMessage message = new MailMessage(from, to);

// 2nd Email Recipient:
string str_sess_2ndEmailperson = Session["sess_2ndEmailperson"].ToString();

if (str_sess_2ndEmailperson == "") 
{ 
}
else
{
     message.To.Add(Session["sess_2ndEmailperson"].ToString());
}

// string str_sess_3rdEmailperson = Session["sess_3rdEmailperson"].ToString();
// if (str_sess_3rdEmailperson == "")
// {
// }
// else
// {
//     message.To.Add(Session["sess_3rdEmailperson"].ToString());
// }


message.Subject = "Issue Management Submittal Confirmation";
message.IsBodyHtml = true;

String strBody = @"A new proposed issue has been submitted.<br />Click here to view the issue:<br />";

message.Body = strBody;

1 个答案:

答案 0 :(得分:0)

您需要遍历复选框列表,例如:

 foreach (ListItem item in CheckBoxList1.Items)
 {
      if(item.Checked)
      {
           sendEmail(item.Value); //assuming your val is the email address
      }
 }

然后在您的电子邮件例程中,将电子邮件地址作为参数传递

 private void sendEmail(string emailAddress)
 {
      //call your email routine here


 }
相关问题