目前,当我的程序读取特定表格并向8位用户发送电子邮件时,如果有8位用户,则应收到一封电子邮件。 它应该只为每个用户发送一封电子邮件。 每个用户不是8封电子邮件。 这是我的代码:
comm.CommandText = "SELECT * FROM tblRent WHERE DateIn < " + ImorgenTicks + " AND Status = 'Out' AND Trainee IS NULL";
SqlDataReader read = comm.ExecuteReader();
if (read.HasRows)
{
while (read.Read())
{
string mail = read["Mail"].ToString();
try
{
message.To.Add(mail);
//email
smtp.Send(message);
}
catch
{
MessageBox.Show("Text");
}
}
}
我在互联网上搜索并找到了一些解决方案但没有让他们工作。
答案 0 :(得分:2)
似乎您在每次迭代时向同一MailMessage
添加多个地址。您需要清除message.To
集合或在每次迭代中创建新消息
while (read.Read())
{
string mail = read["Mail"].ToString();
try
{
message.To.Clear();
message.To.Add(mail);
//email
smtp.Send(message);
}
catch
{
MessageBox.Show("Text");
}
}