Foros del Web » Programando para Internet » ASPX (.net) »

Problema con clase statica y objeto... C#2.0

Estas en el tema de Problema con clase statica y objeto... C#2.0 en el foro de ASPX (.net) en Foros del Web. Hola buenas tardes gente !!! Verán, tengo una clase estatica para mandar eMails la cual recibe un parametro que es un objeto PDFDocument, para mandar ...
  #1 (permalink)  
Antiguo 28/05/2007, 09:30
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Problema con clase statica y objeto... C#2.0

Hola buenas tardes gente !!!


Verán, tengo una clase estatica para mandar eMails la cual recibe un parametro que es un objeto PDFDocument, para mandar dicho objeto como un adjunto.

Bien, el problema es el siguiente, creo dos objetos de este tipo para mandar el correo a cuatro personas:
Código:
PdfDocument objDocumentoFabricante = GeneraDocumentoFabricante(txtRutaImagen);
PdfDocument objDocumentoRepresentante = GeneraDocumentoRepresentante(txtRutaImagen);

                UtilidadesWeb.EnviarCorreo("", this.Organizacion.Email, "[email protected]", "Fabricante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoFabricante);
                UtilidadesWeb.EnviarCorreo("", this.Solicitante.Email, "[email protected]", "Representante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoRepresentante);
                UtilidadesWeb.EnviarCorreo("", "[email protected]", "[email protected]", "Fabricante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoFabricante);
                UtilidadesWeb.EnviarCorreo("", "[email protected]", "[email protected]", "Representante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoRepresentante);

Bueno, en el método EnviarCorreo salvo el objeto PdfDocument en un Stream para pasarlo como Attachment. Ok, me funciona perfecto pero solo la primera vez !!!.

Es decir, el objDocumentoFabricante y el objDocumentoRepresentante se envian correctamente a los dos primeros destinatarios, pero los dos segundos les llega el PDF corrupto.

Me da la impresión de que estoy mandando los objetos por referencia y en el método EnviarCorreo les sucede algo a cada objeto, que la segunda vez que los utilizo llegan corruptos.... pero... si no estoy poniendo la palabra ref delante... ¿Por qué me está pasando esto?, ¿Como puedo hacer que lo que pase al método EnviarCorreo sea un objeto por valor y no uno por referencia?

En fin, espero puedan ayudarme, se lo agradecería.

Saludos.
__________________
Charlie.
  #2 (permalink)  
Antiguo 28/05/2007, 10:04
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Problema con clase statica y objeto... C#2.0

Todos los objetos siempre pasan por referencia, si quieres pasar una copia deberías implementar la interface ICloneable.

Pero viendo el problema, me parece que sería mejor que modificaras tu método para que te permita enviar esos documentos a una lista de correos (hint: usa copia de carbón [oculta]).

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 28/05/2007, 10:21
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Problema con clase statica y objeto... C#2.0

Buenas XKnow, gracias por contestar.

En verdad tenía pensado enviar el eMail en una lista:
Código:
MailMessage Mensaje = new MailMessage(Remitente, Destinatarios, Asunto, Cuerpo);
Donde Destinatarios serían: "unhadir, otradir, otramas"

Sin embargo, cuando intenta mandar a la 1ª direccion y esta no existe o falla, se produce una excepción (La cual tengo controlada) pero no me sigue con el envio de Mails a las demás direcciones SI validas....

¿Como puedo hacer para que el SMTPClient, al enviar un eMail a varias personas, si falla una dirección, siga enviando a las demás?
__________________
Charlie.
  #4 (permalink)  
Antiguo 28/05/2007, 10:38
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Problema con clase statica y objeto... C#2.0

No agregues de ese modo los destinatarios, hazlo a través de la colección de CC o Bcc, el siguiente ejemplo no me manda ningún error.
Código:
MailMessage mensaje = new MailMessage();
mensaje.From = new MailAddress("[email protected]");

mensaje.Subject = "test";

// Cuentas inexistentes
mensaje.Bcc.Add("[email protected]");
mensaje.Bcc.Add("[email protected]");

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Credentials = new NetworkCredential("[email protected]", "mi_contraseña");

client.Send(mensaje);
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 07:49.