无法将电子邮件附加到 MailMessage
Unable to attach email to MailMessage
我正在尝试从 sql 生成电子邮件列表,然后使用该列表将每个电子邮件地址附加到邮件消息中。我得到:
The specified string is not in the form required for an e-mail
address.
我做错了什么?此错误发生在 Page_Load 内的 foreach 处。查看 mailAddress 变量时,它正常显示电子邮件地址 "johndoe@gmail.com"
我尝试了一些建议,例如将邮件添加到:
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
}
}
我认为你应该得到 mailAddress
的 .Email
属性 而不是它本身。因为 mailAddress
是 Supervisor
,而不是 string
之类的东西。
试试;
msg.To.Add(mailAddress.Email.ToString());
当然,我们对 Email
类型一无所知,我假设它 returns 这个邮件地址是一个字符串,因为你说你在调试器或其他东西上看到它。
我正在尝试从 sql 生成电子邮件列表,然后使用该列表将每个电子邮件地址附加到邮件消息中。我得到:
The specified string is not in the form required for an e-mail address.
我做错了什么?此错误发生在 Page_Load 内的 foreach 处。查看 mailAddress 变量时,它正常显示电子邮件地址 "johndoe@gmail.com"
我尝试了一些建议,例如将邮件添加到:
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
}
}
我认为你应该得到 mailAddress
的 .Email
属性 而不是它本身。因为 mailAddress
是 Supervisor
,而不是 string
之类的东西。
试试;
msg.To.Add(mailAddress.Email.ToString());
当然,我们对 Email
类型一无所知,我假设它 returns 这个邮件地址是一个字符串,因为你说你在调试器或其他东西上看到它。