2016-01-21 8 views
0

Я пытаюсь создать список писем из sql, а затем использовать этот список, чтобы прикрепить каждый адрес электронной почты к почтовому сообщению. Я получаю:Не удалось приложить письмо MailMessage

Указанная строка не таковая для электронного письма .

Что я делаю неправильно? Эта ошибка происходит в foreach в пределах Page_Load. При взгляде на переменную MailAddress она показывает адреса электронной почты, как правило, как это должно «[email protected]»

Я попытался несколько предложений, как изменение почты Добавить:

msg.To.Add(new MailAddress(mailAddress.ToString())); 

но что не работает.

public class Supervisor 
{ 
    public string Email { get; set; } 
} 

public List<Supervisor> LoadSupervisors(int ID) 
{ 
    var listOfEmails = new List<Supervisor>(); 
    using (SqlConnection conn = new SqlConnection("")) 
    { 
     SqlCommand cmd = new SqlCommand(@"", conn2); 
     cmd.Parameters.AddWithValue("@ID", ID); 
     conn.Open(); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     while (rdr.Read()) 
     { 
     var supervisor = new Supervisor(); 
     supervisor.Email = rdr["Email"].ToString(); 
     listOfEmails.Add(supervisor); 
     } 
    } 
    return listOfEmails; 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    //----- Bunch of code that isn't related 
    while (rdr.Read()) 
    { 
     var listOfEmails = new List<Supervisor>(); 
     listOfEmails = LoadSupervisors(Convert.ToInt32(rdr["UserID"])); 

     MailMessage msg = new MailMessage(); 
     SmtpClient server = new SmtpClient(""); 
     foreach (var mailAddress in listOfEmails) 
     { 
      msg.To.Add(mailAddress.ToString()); 
     } 
     //----- Bunch of code that isn't related 
    } 
} 
+0

Возможный дубликат [Указанная строка не в форме, необходимой для адреса электронной почты] (http://stackoverflow.com/questions/4757001/the-specified-string-is-not-in-the- form-required-for-an-e-mail-address) –

+0

@VolkanPaksoy Не дубликат, я пробовал все в этом сообщении до отправки этого сообщения. Я имею дело со списком не одной строки. – techora

ответ

1

Я думаю, вы должны получить .Email свойство вашего mailAddress вместо себя. Потому что mailAddress - это Supervisor, а не string или что-то в этом роде.

Попробуйте как;

msg.To.Add(mailAddress.Email.ToString()); 

Но, конечно, мы ничего не знаем о Email типа, я полагаю, он возвращает этот адрес электронной почты в виде строки, так как вы сказали, что вы видите его на отладчик или что-то.

+0

Doh! Я должен был это видеть. Это сработало. Спасибо. – techora