Har en funktion som skickar mail via System.Net.Mail.SmtpClient. Det kan väl vara så att det är outlook (eller vilken klient du nu använder) som håller på filen så länge som det tar att skicka filen. Är det ett stort dokument så kan det ju ta någon minut i värsta fall. Mmm .. bra tips där ... har dock fått det hela att funka (so far) nu då jag upptäckte att jag disposat fel objekt !! Det borde inte ha något som helst med Outlook att göra, däremot Garbage Collectorn. Garbage collectorn (GC) tar väl hand om objektet vid dispose, men det går inte att avgöra när sedan GC verkligen gör sig av med objektet om inte jag minns fel?Net.Mail problem
I dessa mail bifogas alltid en PDF-fil via System.Net.Mail.Attachment
Innan funktionen lämnas kör jag Dispose på båda delarna för att som jag trodde frigöra filen som efter funktionen döps om och flyttas till en annan katalog.
Problemet är att ibland (inte alltid) så får jag felmeddelande i samband med flyttningen där det sägs att filen är låst av en annan process.
Nu är frågan, Dispose verkar ju inte räcka, kan man köra nån Do-Loop som väntar in filens status eller !?
<code>
Dim Message As System.Net.Mail.MailMessage
Dim myAtt As System.Net.Mail.Attachment
Dim mySMTP As System.Net.Mail.SmtpClient
Message = New System.Net.Mail.MailMessage("info@mysite.se", strTo, strSubj, strBody)
myAtt = New System.Net.Mail.Attachment(myAttach)
If myAttach <> "" Then
Message.Attachments.Add(myAtt)
End If
mySMTP = New Net.Mail.SmtpClient("smtp.mydomain.se")
mySMTP.Send(Message)
send_Mail = True
Message.Dispose()
myAtt.Dispose()
Application.DoEvents()
</code>Sv: Net.Mail problem
Jag kan ju inte förutsättningarna i din applikation men kanske skall kopiera dokumentet till temp-mappen först och maila iväg den därifrån. Sedan bör du ju rensa efter dig i temp-mappen också men det finns det olika sätt att göra på...
Eventuellt skulle du kunna be användaren definiera en temp-mapp i din applikation som du sedan tömmer med jämna mellanrum.Sv:Net.Mail problem
Sv: Net.Mail problem