Hi friends,
I am one problem. Please help me to sort out this.
I am send email with attachments. It is working fine.
I want to do is that, after sending the mail, I want to move the files which i attached to the mail from it's original location to other location in my hard drive.
But When I am doing this, It gives me the exception "File is already in use by another process"
Code:
SendMessageWithAttachment() this method actually send the mail.
public static string SendMessageWithAttachment(string sendTo, string sendFrom, string sendSubject, string sendMessage, ArrayList attachments)
{
try
{
message = new MailMessage(
sendFrom,
sendTo,
sendSubject,
sendMessage);
foreach (string attach in attachments)
{
Attachment attached = new Attachment(attach, MediaTypeNames.Application.Octet);
message.Attachments.Add(attached);
}
client = new SmtpClient(Properties.Settings.Default.SMTPAddress);
NetworkCredential basicAuthentication = new NetworkCredential(Properties.Settings.Default.Username, Properties.Settings.Default.Password);
client.EnableSsl = true;
client.Port = Convert.ToInt32(Properties.Settings.Default.Port);
client.UseDefaultCredentials = false;
client.Credentials = basicAuthentication;
// send message
client.Send(message);
return "Message sent to " + sendTo + " at " + DateTime.Now.ToString() + ".";
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}
|
Here I am invoking the above method
ArrayList sendAttachments = new ArrayList(Directory.GetFiles("InProcess Mails"));
string status = Emailer.SendMessageWithAttachment(sendTo, sendFrom, sendSubject, sendMsgBody, sendAttachments);
MessageBox.Show(status, "Email Status");
foreach (string str in sendAttachments)
{
File.Move(str, "SentMail\\" + str.Substring(str.LastIndexOf('\\'))); <--- This is the line where exception is through
}
|
Please solve my this problem.
Thanks & regards,
Manesh