отправить несколько писем с прикрепленными изображениями - PullRequest
0 голосов
/ 08 июня 2011

Я использую класс почты для отправки электронной почты с вложением в качестве изображения нескольким получателям. но проблема в том, что, когда электронная почта отправляется первому получателю, она выдает исключение, что «изображение используется другим процессом» ... как это можно решить ..

Я получаю пользователей в списке как:

 foreach (ListItem item in lstboxlist.Items)
                {
                    to = Convert.ToString(item);
                    select_theme_tosend(to, sub);
                }

и я отправляю почту пользователям как:

string source_theme =  theme;
            string dest_theme_path = "xxx";

            if (File.Exists(dest_theme_path))
            {
                File.Delete(dest_theme_path);
            }
            File.Copy(source_theme, dest_theme_path);
            xmlDoc.Load(theme);
            XmlNode node = null;
            SendMail_Html send_html = new SendMail_Html ();

                MailMessage mail = new MailMessage();
                Attachment footer_att = null;
                Attachment header_att = null;
                Attachment other_att = null;
                mail.Attachments.Add(other_att);
                }
                xmlDoc.Save(theme);

                StreamReader strm_rdr = new StreamReader(theme);
                string theme_text = strm_rdr.ReadToEnd();

                SendMail send_mail = new SendMail();
                send_html.sent_htmlmail1(to, theme_text, subject, footer_att, header_att, other_att);
                mail.Dispose();
               // File.Delete(header_path);
               // File.Delete(other_imagepath);
               // File.Delete(foot_image_path);  
}  

если я раскомментирую последнюю строку, при отправке почты на второй адрес выдается сообщение об ошибке: "указанный файл не найден" ... что я должен сделать, чтобы отправить несколько электронных писем ... пожалуйста, помогите ...

1 Ответ

1 голос
/ 08 июня 2011

Закройте поток после того, как вы закончили с ним, например:

StreamReader strm_rdr = new StreamReader(theme);
string theme_text = strm_rdr.ReadToEnd();
strm_rdr.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...