CDO.Message AddAttachment

20/11/2006 - 14:43 por Jorge | Informe spam
Hola grupo, un favor, eh estado intentando enviar un archivo adjunto usando
servidor SMTP pero no envia, este es el código que estoy usando:
Dim oMsg = Server.CreateObject("CDO.Message")
Dim iConf = Server.CreateObject("CDO.Configuration")
Dim Flds = iConf.Fields
Const ConfigNamespace As String = _
"http://schemas.microsoft.com/cdo/co...ion/"
' Se configuran los parametros necesarios para el envío
iConf.Fields.Item(ConfigNamespace & "sendusing") = 1
iConf.Fields.Item(ConfigNamespace & "smtpserver") = "mis servidor
smtp"
iConf.Fields.Item(ConfigNamespace & "smtpconnectiontimeout") = 10
iConf.Fields.Item(ConfigNamespace & "smtpserverport") = 25
' Se completan los datos del usuario y la contraseña necesarios para
el envio
iConf.Fields.Item(ConfigNamespace & "sendusername") =
Request(miMail.Usuario) 'usuario smtp
iConf.Fields.Item(ConfigNamespace & "sendpassword") =
Request(miMail.Pass) 'password para STMP
iConf.Fields.Update()
' Se asignan las propiedades de configuración al objeto
oMsg.Configuration = iConf
oMsg.From = miMail.De
' TODO: Replace with recipient e-mail address.
oMsg.To = miMail.Para
If miMail.CC <> "" Then
oMsg.CC = miMail.CC
End If
If miMail.CCO <> "" Then
oMsg.Bcc = miMail.CCO
End If

oMsg.Subject = miMail.Asunto
Dim Archivo As HtmlInputFile = CType(FindControl("Archivo"),
HtmlInputFile)
If Archivo.Value <> "" Then
sAtach = Path.GetFullPath(Archivo.PostedFile.FileName)
'sAtach = Replace(sAtach, "", "")
'oMsg.AddAttachment(sAtach)
oMsg.AddAttachment(sAtach, "%3A", "%253A")
End If
oMsg.HTMLBody = miMail.Mensaje
Dim jError As String = ""
Try
oMsg.Send()
jError = "OK"
Catch ex As Exception
jError = "ERROR: " & ex.Message
Finally
If jError = "OK" Then
enviarMail = True
Else
enviarMail = False
End If
oMsg = Nothing
iConf = Nothing
Flds = Nothing
End Try

si es envio de solo mail sin archivo adjunto todo ok envia.
Alguien tuvo este problema que no pueda enviar archivo adjunto?
estoy usando vb.net y framework 2.0

Salu2


Jorge
 

Leer las respuestas

#1 Alberto Poblacion
20/11/2006 - 16:16 | Informe spam
"Jorge" wrote in message
news:
Hola grupo, un favor, eh estado intentando enviar un archivo adjunto
usando servidor SMTP pero no envia, este es el código que estoy usando:
Dim oMsg = Server.CreateObject("CDO.Message")
[...]
Dim Archivo As HtmlInputFile = CType(FindControl("Archivo"),
HtmlInputFile)
[...]
sAtach = Path.GetFullPath(Archivo.PostedFile.FileName)
oMsg.AddAttachment(sAtach, "%3A", "%253A")
[...]
estoy usando vb.net y framework 2.0



Dos cosas:
1) Si estás usando el framework 2.0, ¿por qué no utilizas
System.Net.Mail, que hace lo mismo pero es todo código gestionado, en lugar
de usar COM Interop para llamar a CDO, que siempre es problemático? Si miras
el manual en linea de Visual Studio verás que trae un ejemplo de
System.Net.Mail que precisamente envía ficheros adjuntos.

2) No me conozco mucho el CDO, pero me da la impresión de que no le estás
pasando el fichero. El HtmlInputFile.PostedFile.FileName que estás usando te
dice la ruta original del fichero transmitido desde el cliente, pero no te
da los bytes del fichero. No me explico cómo pasandole al CDO en el servidor
el nombre que tiene el archivo en el PC cliente puede servirle para
adjuntarlo al mail.

Preguntas similares