Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 28-may-2007, 09:30   #1 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.870
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, "vehiculos@mityc.es", "Fabricante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoFabricante);
                UtilidadesWeb.EnviarCorreo("", this.Solicitante.Email, "vehiculos@mityc.es", "Representante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoRepresentante);
                UtilidadesWeb.EnviarCorreo("", "chevia@mityc.es", "vehiculos@mityc.es", "Fabricante Solicitud Num. " + _idExpediente.ToString(), "", objDocumentoFabricante);
                UtilidadesWeb.EnviarCorreo("", "chevia@mityc.es", "vehiculos@mityc.es", "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.
chcma está desconectado   Responder Citando
Antiguo 28-may-2007, 10:04   #2 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
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
xknown está desconectado   Responder Citando
Antiguo 28-may-2007, 10:21   #3 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.870
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.
chcma está desconectado   Responder Citando
Antiguo 28-may-2007, 10:38   #4 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
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("mi_cuenta@gmail.com");

mensaje.Subject = "test";

// Cuentas inexistentes
mensaje.Bcc.Add("zxcxzas@buayacorp.com");
mensaje.Bcc.Add("fsdfasd@buayacorp.com");

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Credentials = new NetworkCredential("mi_cuenta@gmail.com", "mi_contraseña");

client.Send(mensaje);
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
xknown está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:46.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93