el proceso no puede obtener acceso al archivo porque está siendo utilizado en otro proceso vb.net
La función que adjunta el fichero, lo deja abierto. No se porque, pero es así.
La idea general es crear el fichero en memoria y adjuntar ese fichero en memoria con el nombre que quieras.
Esta clase lo hace:
La idea general es crear el fichero en memoria y adjuntar ese fichero en memoria con el nombre que quieras.
Esta clase lo hace:
Imports System.Net.Mail
Imports System.Text
Imports System.Net
Imports System.Text
Imports System.Net
Public Class FrmEmail
Public Shared Function SendEMail(ByVal strOrigen As String, ByVal strDestinatario As String, ByVal strAsunto As String, ByVal strMsg As String, ByVal usuario As String, ByVal Clave As String, ByVal smtp As String, ByVal Adjunto As String) As Boolean
Dim msg As New MailMessage()
msg.[To].Add(New MailAddress(strDestinatario))
msg.From = New MailAddress(strOrigen)
msg.Subject = strAsunto
msg.Body = strMsg
Dim msg As New MailMessage()
msg.[To].Add(New MailAddress(strDestinatario))
msg.From = New MailAddress(strOrigen)
msg.Subject = strAsunto
msg.Body = strMsg
‘Adjuntar fichero. No se puede ajuntar el fichero tal cual, pues se queda bloqueado.
Dim contentAsBytes As Byte() = Encoding.UTF8.GetBytes(Adjunto)
Dim memStream As System.IO.MemoryStream = New System.IO.MemoryStream(contentAsBytes)
Dim contentAsBytes As Byte() = Encoding.UTF8.GetBytes(Adjunto)
Dim memStream As System.IO.MemoryStream = New System.IO.MemoryStream(contentAsBytes)
Dim streamWriter As System.IO.StreamWriter = New System.IO.StreamWriter(memStream)
streamWriter.Flush()
streamWriter.Flush()
memStream.Position = 0
Dim thisAttachment As Attachment = New Attachment(memStream, vbNull) ‘ “image/jpeg”)
Dim F As Long
Dim FileNameAdjunto As String
F = InStrRev(Adjunto, “\”)
If F = 0 Then
FileNameAdjunto = Adjunto
Else
FileNameAdjunto = Adjunto.Substring(F)
End If
thisAttachment.ContentDisposition.FileName = FileNameAdjunto
Dim F As Long
Dim FileNameAdjunto As String
F = InStrRev(Adjunto, “\”)
If F = 0 Then
FileNameAdjunto = Adjunto
Else
FileNameAdjunto = Adjunto.Substring(F)
End If
thisAttachment.ContentDisposition.FileName = FileNameAdjunto
msg.Attachments.Add(thisAttachment)
‘msg.Attachments.GetEnumerator()
Dim clienteSmtp As New SmtpClient(smtp)
clienteSmtp.Credentials = New NetworkCredential(usuario, Clave)
clienteSmtp.Credentials = New NetworkCredential(usuario, Clave)
Try
clienteSmtp.Send(msg)
clienteSmtp.Send(msg)
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
End Class
No hay comentarios:
Publicar un comentario