0

我在下面的代码中试图实现的是为可以在我的数据库中找到的每个电子邮件地址发送一封电子邮件。我的问题是当我点击我的发送按钮时,错误提示“ The specified string is not in the form required for an e-mail address.”就mail.Bcc.Add(MyVar.Text)行了。

private void sendmail()
    {
        Label MyVar = new Label();
        foreach (DataRowView UserEmail in SelectUserProfile.Select(DataSourceSelectArguments.Empty))
        {
            MyVar.Text = "";
            MyVar.Text += UserEmail["EMAIL"].ToString() + "; ";
        }

        //This line takes the last ; off of the end of the string of email addresses
        MyVar.Text += MyVar.Text.Substring(0, (MyVar.Text.Length - 2));

        MailMessage mail = new MailMessage();

        mail.Bcc.Add(MyVar.Text);
        mail.From = new MailAddress("syntaxbugerror@gmail.com");
        mail.Subject = "New Member Application";
        mail.Body = "Good day, in this e-mail you can find a word document attached in which it contains new membership application details.";
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Credentials = new System.Net.NetworkCredential("myusername@gmail.com", "mypassword");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }

厄尼

4

2 回答 2

1

你为什么要构建一串密件抄送电子邮件地址?

Bcc是一个集合,所以就这样对待它。我不太确定你在用标签做什么或为什么,所以暂时忽略它,这样的事情应该可以工作

MailMessage mail = new MailMessage();

foreach (DataRowView UserEmail in SelectUserProfile.Select(DataSourceSelectArguments.Empty))
{
   MyVar.Text = "";
   MyVar.Text += UserEmail["EMAIL"].ToString() + "; ";

   try
   {
       mail.Bcc.Add(UserEmail["EMAIL"].ToString());
   }
   catch(FormatException fe)
   {
      // Do something with the invalid email address error.
    }
}
于 2012-03-19T15:15:00.923 回答
0

您的逻辑流程没有意义。您正在一起解析电子邮件,然后尝试通过一些有缺陷的逻辑来解析您的电子邮件地址。相反,创建您的邮件消息,然后遍历您的电子邮件地址,将每个地址添加到密件抄送中。

// Create Message (...)
foreach(...)
{
   mail.Bcc.Add(UserEmail["EMAIL"].ToString()); 
}
// Finalize and send (...)
于 2012-03-19T15:12:43.763 回答