Benutzer mit den meisten Antworten
System.Net.Mail

Frage
-
Servus Experten
ich versende Dateien mit System.Net.Mail, dass funzt auch soweit prima!! Nur die Dateien, welche als Mail-Anhang mitgehen, müssen danach noch weiter verarbeitet werden. Das System läst dies aber nicht zu, sondern bring die Meldung: "Die Aktion kann nicht abgeschlossen werden, da die Datei in vshost32.exe geöffnet ist" ???? Hmmm, weder ein Dienst noch Prozess mit diesem Namen war zu finden? Beende ich mein Programm können die Dateien wieder frei verwendet werden. Jemand eine Idee, was man da machen kann ???
Hier mal der Code mit dem ich die Mail erstelle und versende:
Imports System.Net.Mail Module ModMail Dim temp As String Public Sub MailSend(ByVal absender As String, ByVal Empfänger As String, ByVal Betreff As String, ByVal Mtxt As String, ByVal xdgv As DataGridView, ByVal orginal As Boolean, ByVal AnhangAnhängen As Boolean) Try Dim SmtpServer As New SmtpClient() Dim mail As New MailMessage() SmtpServer.Credentials = New Net.NetworkCredential(absender, GetPWort(absender)) SmtpServer.Port = GetPort() SmtpServer.Host = GetHost() mail = New MailMessage() mail.From = New MailAddress(absender) 'Empfänger Dim sArray() As String sArray = Split(Empfänger, ";") For i = 0 To sArray.Count - 1 mail.To.Add(sArray(i)) Next i mail.Subject = Betreff mail.Body = Mtxt 'Anhänge If AnhangAnhängen = True And xdgv.Rows.Count > 0 Then For i = 0 To xdgv.Rows.Count - 1 temp = New FileInfo(xdgv.Rows(i).Cells("Pfad").Value.ToString()).Name If orginal = False Then If InStr(temp, ".", CompareMethod.Text) > 1 Then temp = Mid(temp, 1, InStr(temp, ".", CompareMethod.Text) - 1) End If temp = temp + ".pdf" End If mail.Attachments.Add(New Attachment(New FileInfo(xdgv.Rows(i).Cells("Pfad").Value.ToString()).DirectoryName.ToString & "\" & temp)) Next End If SmtpServer.Send(mail) mail = Nothing SmtpServer = Nothing MsgBox("mail send") Catch ex As Exception MsgBox(ex.ToString) End Try End Sub
Antworten
-
Hi,
anstelle von "Irgendwas = Nothing" solltest Du die Dispose Methoden der Objekte aufrufen.
und ggfs. noch weitere.
Dann sollten die Ressourcen wieder frei werden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Monarch-Falter Donnerstag, 24. Mai 2012 10:46
Alle Antworten
-
Hi,
anstelle von "Irgendwas = Nothing" solltest Du die Dispose Methoden der Objekte aufrufen.
und ggfs. noch weitere.
Dann sollten die Ressourcen wieder frei werden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Monarch-Falter Donnerstag, 24. Mai 2012 10:46