Мне просто нужна помощь. В основном я создаю приложение Windows, которое отправляет массовые письма нашим клиентам. поле «электронная почта» и «вложение» - из базы данных. поле вложения содержит только путь, в котором находится файл. Код работает, но вместо получения 5 сообщений электронной почты я получаю 15 писем.Отправка больших электронных писем с путями вложений в базе данных
Примечание: моя база данных содержит только 5 записей, поэтому я должен получить только 5 писем с вложениями:
Можете ли вы помочь мне, пожалуйста, спасибо!
Вот мой код:
string email;
string attachment;
ArrayList emailList = new ArrayList();
ArrayList attachList = new ArrayList();
private static readonly Logger log = new _EventLogger();
private void btnSend_Click(object sender, EventArgs e)
{
conn.Open();
SqlCommand cmdgetEmail = new SqlCommand("Select EMAIL, PATH from MEMBERREQUIREMENTS WHERE STATUS=0", conn);
SqlDataReader getEmail = cmdgetEmail.ExecuteReader();
//count = 0;
while (getEmail.Read())
{
//count++;
//email = getEmail.GetValue(i).ToString();
//emailList.Add(email);
//i = i + 1 - 1;
email = getEmail.GetString(0);
emailList.Add(email);
attachment = getEmail.GetString(1);
attachList.Add(attachment);
}
getEmail.Close();
conn.Close();
sendMail();
}
private void sendMail()
{
string from="[email protected]";
foreach (string sendTo in emailList)
{
foreach (string sendAttachments in attachList)
{
MailMessage mail = new MailMessage();
mail.To.Add(sendTo);
mail.From = new MailAddress(from, "Company Name'", Encoding.UTF8);
mail.Subject = subject;
mail.Body = msgBodyHead + msgBodyHead2 + msgDate + msgGreet + msgBody + msgAdobe + msgAssistance + msgCompliment + msgfooter;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.High;
mail.Attachments.Add(new Attachment(sendAttachments));
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(from, "password");
client.Host = "192.167.89.0";
client.EnableSsl = false;
try
{
progress();
client.Send(mail);
}
catch (Exception ex)
{
ProgressBar1.Visible = false;
timer1.Enabled = false;
Exception excpt = ex;
string errorMessage = string.Empty;
while (excpt != null)
{
errorMessage += excpt.ToString(); excpt = excpt.InnerException;
log.Error("Email - LMS Application Error", ex);
lblError.Text = "There was an error occured while processing your request.\n Please see Event Viewer for more details.";
lblError.ForeColor = System.Drawing.Color.Red;
}
}
}
}
}
Заметим, что '[код] и' [/ код] 'псевдопользователей-теги ничего не значит. Лучший способ форматировать код - добавить четыре пробела к каждой строке.Если вы выберете весь свой код, а затем нажмите кнопку '{}' в редакторе, это будет просто работать. – sarnold
извините, но редактор wysywig заблокирован на нашем брандмауэре, поэтому я не могу его увидеть. – Dhenn
Я верю, что это нормально – Dhenn