Foros del Web » Programación para mayores de 30 ;) » .NET »

Enviar mensajes con adjuntos desde C#

Estas en el tema de Enviar mensajes con adjuntos desde C# en el foro de .NET en Foros del Web. Buenas a todos, estoy haciendo un cliente en C# para subir documentos a un servidor. Para ello tengo que enviar a un WS el mensaje ...
  #1 (permalink)  
Antiguo 06/11/2012, 04:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Enviar mensajes con adjuntos desde C#

Buenas a todos, estoy haciendo un cliente en C# para subir documentos a un servidor. Para ello tengo que enviar a un WS el mensaje donde especifico el archivo que quiero subir y su tamaño, asi como el propio fichero.

El código que tengo es el siguiente:

Código:
            string oRequest = "";
            oRequest  = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tran=\"http://abengoa.com/schema/test/transfer\">\n";
            oRequest += "    <soapenv:Header/>\n";
            oRequest += "    <soapenv:Body>\n";
            oRequest += "        <tran:upload>\n";
            oRequest += "            <tran:fileName>" + fileName + "</tran:fileName>\n";
            oRequest += "            <tran:fileSize>" + fileSize + "</tran:fileSize>\n";
            oRequest += "        </tran:upload>\n";
            oRequest += "    </soapenv:Body>\n";
            oRequest += "</soapenv:Envelope>";

            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.ContentType = "text/xml; charset=\"utf-8\"";
            req.ContentLength = oRequest.Length;
            req.Accept = "text/xml";
            req.Method = "POST";

            using (Stream stm = req.GetRequestStream())
            {
                using (StreamWriter stmw = new StreamWriter(stm))
                {
                    stmw.Write(oRequest);
                }
            }

            try
            {
                HttpWebResponse response = (HttpWebResponse) req.GetResponse();
                StreamReader sReader = new StreamReader(response.GetResponseStream());
                string strXMLReply = sReader.ReadToEnd();
                sReader.Close();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(strXMLReply);
            }
            catch (Exception ex) {}
Pero necesito añadir a este mensaje el propio fichero para que se suba al servidor. He estado buscando información y la verdad que soy nuevo en esto y no se como hacerlo; si me pudierais hechar una mano, no se como adjuntar un archivo a una peticion SOAP.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 06/11/2012, 12:04
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Enviar mensajes con adjuntos desde C#

Puedes utilizar como referencia el equivalente en VB

Código vb:
Ver original
  1. Imports System.Net.Mail
  2. *
  3. Dim smtp As New System.Net.Mail.SmtpClient
  4. * * * * * * Dim correo As New System.Net.Mail.MailMessage
  5. [B]* * * * * * Dim Att As System.Net.Mail.Attachment[/B]
  6. *
  7. * * * * * * With smtp
  8. * * * * * * * * .Port = "Puerto"
  9. * * * * * * * * .Host = "smtp.server"
  10. * * * * * * * * .Credentials = New System.Net.NetworkCredential("tu correo", "tu password")
  11. * * * * * * * * .EnableSsl = False
  12. * * * * * * End With
  13. *
  14. * * * * * * With correo
  15. * * * * * * * * .From = New System.Net.Mail.MailAddress("tucorreo")
  16. * * * * * * * * .To.Add(Label1.Text) ' Aqui va el destinatario o puedes leerlo de un lbl
  17. * * * * * * * * .Subject = "Titulo mail"
  18. * * * * * * * * .Body = "<strong><b>Aqui va el mensaje, de igual manera puedes leerlo de un textbox o un label</b></strong>"
  19. * * * * * * * * .IsBodyHtml = True
  20. * * * * * * * * .Priority = System.Net.Mail.MailPriority.Normal ' Le das la prioridad
  21. * * * * * * End With
  22. * * * * * * smtp.Send(correo)
  #3 (permalink)  
Antiguo 06/11/2012, 12:51
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Enviar mensajes con adjuntos desde C#

Hola que tal, revisa la siguiente propiedad:

correo.Attachments

con eso indicas que se le va a anexar un archivo.

  #4 (permalink)  
Antiguo 07/11/2012, 06:22
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Enviar mensajes con adjuntos desde C#

Corrijo, no es un correo lo que necesito enviar, es una request para un WebService.
Cuando lo envío con el SoapUI me da la opcion de añadir un "attachment" pero cuando lo intento hacer desde C# no se como añadir ese adjunto.

Además, me han dicho que, a ser posible, se haga mediante MTOM, con lo que me he perdido aun mas...
Espero que me podais ayudar.

Etiquetas: adjuntos, mensajes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.