Невозможно прикрепить письмо к MailMessage
Я пытаюсь создать список электронных писем из SQL, а затем использовать этот список, чтобы прикрепить каждый адрес электронной почты к почтовому сообщению. Я получаю:
Указанная строка не в форме, необходимой для адреса электронной почты.
Что я делаю неправильно? Эта ошибка происходит на foreach внутри Page_Load. При просмотре переменной 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
}
}
1 ответ
Я думаю, вы должны получить .Email
собственность вашего mailAddress
вместо себя. Так как mailAddress
это Supervisor
не string
или что-то.
Попробуй как;
msg.To.Add(mailAddress.Email.ToString());
Но, конечно, мы ничего не знаем о Email
типа, я предполагаю, что он возвращает этот почтовый адрес в виде строки, так как вы сказали, что видите его в отладчике или что-то в этом роде.