Ошибка в mail.Bcc.Add () ASP .Net c # - PullRequest
0 голосов
/ 19 марта 2012

я пытаюсь достичь в своем коде ниже, чтобы отправить электронное письмо для каждого адреса электронной почты, который можно найти в моей базе данных. Моя проблема заключается в том, что когда я нажимаю кнопку отправки, появляется сообщение об ошибке «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);
    }

Эрни

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Почему вы издеваетесь над строкой адресов электронной почты BCC?

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.
    }
}
0 голосов
/ 19 марта 2012

Ваш логический поток не имеет смысла. Вы анализируете вместе электронные письма, а затем пытаетесь разобрать свои электронные адреса с помощью некоторой ошибочной логики. Вместо этого создайте свое почтовое сообщение и , затем переберите свои адреса электронной почты, добавив каждый из них в BCC.

// Create Message (...)
foreach(...)
{
   mail.Bcc.Add(UserEmail["EMAIL"].ToString()); 
}
// Finalize and send (...)
...