2016-01-21 105 views
0

我试图从sql生成电子邮件列表,然后使用该列表将每个电子邮件地址附加到邮件消息。我得到:无法将电子邮件附加到MailMessage

指定的字符串不是电子邮件地址所需的格式。

我在做什么错?这个错误发生在Page_Load的foreach中。当在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

我觉得你应该把你的mailAddress,而不是本身的.Email财产。因为mailAddressSupervisor,而不是string什么的。

试试;

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

当然只是,我们不知道Email类型的话,我想既然你说你看到它在调试或东西返回此邮件地址字符串。

+0

Doh!我应该看到这一点。这工作。谢谢。 – techora