2016-01-21 107 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