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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Jorge
20/11/2006 - 16:24 | Informe spam
Estaba usando el System.Net.Mail
pero cuando se envia letras asentuadas o caracteres raros, los reemplaza por
? ese signo de interrogación, asi que por ello estoy intentando usar este
CDO que envia bien completa las letras, solo es el problema de los archivos
adjuntos

con el net.mail si se puede enviar adjuntos tranquilamente no me da
problemas, solo fue esa cosilla de los asentos.

Gracias de todos modos Alberto


"Alberto Poblacion"
escribió en el mensaje news:%
"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.




Respuesta Responder a este mensaje
#3 Alberto Poblacion
20/11/2006 - 17:21 | Informe spam
"Jorge" wrote in message
news:
Estaba usando el System.Net.Mail
pero cuando se envia letras asentuadas o caracteres raros, los reemplaza
por ? ese signo de interrogación, asi que por ello estoy intentando usar
este CDO que envia bien completa las letras



¿Dónde te omite los caracteres especiales? ¿En el cuerpo del mensaje, o
en los adjuntos?
Si es en el cuerpo (o en el Subject, etc.), se arregla poniéndole bien el
Encoding:

message.Body = "Texto con eñes"
message.BodyEncoding = System.Text.Encoding.UTF8
message.Subject = "áéíóú"
message.SubjectEncoding = System.Text.Encoding.UTF8

Por supuesto, en lugar de Encoding.UTF8 puedes ponerle el juego de
caracteres que te convenga, por ejemplo, Encoding.GetEncoding(1252) si
quieres el juego de caracteres de Windows en lugar del UTF8.
Respuesta Responder a este mensaje
#4 Jorge
20/11/2006 - 17:40 | Informe spam
gracias hermano, voy a provar con lo que me dices,


"Alberto Poblacion"
escribió en el mensaje news:OPB6l$
"Jorge" wrote in message
news:
Estaba usando el System.Net.Mail
pero cuando se envia letras asentuadas o caracteres raros, los reemplaza
por ? ese signo de interrogación, asi que por ello estoy intentando usar
este CDO que envia bien completa las letras



¿Dónde te omite los caracteres especiales? ¿En el cuerpo del mensaje, o
en los adjuntos?
Si es en el cuerpo (o en el Subject, etc.), se arregla poniéndole bien
el Encoding:

message.Body = "Texto con eñes"
message.BodyEncoding = System.Text.Encoding.UTF8
message.Subject = "áéíóú"
message.SubjectEncoding = System.Text.Encoding.UTF8

Por supuesto, en lugar de Encoding.UTF8 puedes ponerle el juego de
caracteres que te convenga, por ejemplo, Encoding.GetEncoding(1252) si
quieres el juego de caracteres de Windows en lugar del UTF8.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida