Problem with difference between System.Web.Mail and System.Net.Mail in using attachments

B

Brad

I have a web .Net app which sends emails with attachments. After the email
is sent I clean up aftermyself and delete the attachments from disk. In
upgrading to .Net 2 I changed the email logic from using system.web.mail to
system.net.mail (of course vs is telling me system.web.mail is obsolete).
In .Net 1.1, the files deleted with no problem but in .Net 2 when I attempt
to delete I receive

The process cannot access the file ...' because it is being used by another
process.

If I change the code back to using system.web.mail I can delete the files.
So it would appear that something about the mail object, using
system.net.mail, keeps the file in use. I found the same is true if I
attempt to overwrite the files using something like File.Copy(from,to,
true). Why in .Net 2 would the disk files still be in use...or at least
how can they be released?

Below is snip of code, both the 1.1 and 2.0 version.

..Net 1.1 code
============================
Dim mailObj As New System.Web.Mail.MailMessage()
With mailObj
.From = fromName
.To = toName
.Body = body.ToString
.Priority = MailPriority.High
.Subject = "Test"
.BodyFormat = Mail.MailFormat.Html
.Attachments.Add(New
System.Web.Mail.MailAttachment(attachment1Name))
.Attachments.Add(New
System.Web.Mail.MailAttachment(attachment2Name))

End With

System.Web.Mail.SmtpMail.SmtpServer = server
System.Web.Mail.SmtpMail.Send(mailObj)

File.Delete(attachment1Name)
File.Delete(attachment2Name)
========================================


..Net 2.0 code
========================================
Dim mailObj As New MailMessage(fromName, toName)
With mailObj
.Body = body.ToString
.Priority = MailPriority.High
.Subject = "Test"
.IsBodyHtml = True
.Attachments.Add(New Attachment(attachment1Name))
.Attachments.Add(New Attachment(attachment2Name))

End With

Dim mailserver As New SmtpClient(server)
mailserver.Send(mailObj)

File.Delete(attachment1Name)
File.Delete(attachment2Name)




- Brad
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top