Ошибка в mail.Bcc.Add() ASP .Net C#
То, что я пытаюсь достичь в своем коде ниже, это отправить электронное письмо для каждого адреса электронной почты, который можно найти в моей базе данных. Моя проблема в том, что когда я нажимаю кнопку отправки, появляется сообщение об ошибке "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 ответа
Почему вы издеваетесь над строкой адресов электронной почты 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.
}
}
Ваш логический поток не имеет смысла. Вы анализируете вместе электронные письма, а затем пытаетесь разобрать свои адреса электронной почты с помощью некоторой некорректной логики. Вместо этого создайте свое почтовое сообщение, а затем переберите свои адреса электронной почты, добавив каждый из них в BCC.
// Create Message (...)
foreach(...)
{
mail.Bcc.Add(UserEmail["EMAIL"].ToString());
}
// Finalize and send (...)