2008-11-21 20 views
6

Estoy tratando de adjuntar un archivo PDF adjunto a un correo electrónico que se envía con System.Net.Mail. La parte de adición de adjuntos se ve así:archivos adjuntos de correo electrónico dañados en .NET

using (MemoryStream pdfStream = new MemoryStream()) 
{ 
    pdfStream.Write(pdfData, 0, pdfData.Length); 

    Attachment a = new Attachment(pdfStream, 
     string.Format("Receipt_{0}_{1}.pdf", jobId, DateTime.UtcNow.ToString("yyyyMMddHHmm"))); 

    msg.Attachments.Add(a); 

    SmtpClient smtp = new SmtpClient(serverName, port); 
    smtp.Credentials = new NetworkCredential(fromEmailName, fromEmailPassword); 
    smtp.Send(msg); 
} 

El problema es que el archivo adjunto se corrompe en el otro extremo. Encontré un poco de discusión sobre este problema here, sin embargo, la solución mencionada en esa página usa System.Web.Mail.MailAttachment, que quedó obsoleto en .NET 2.0.

He intentado cambiar TransferEncoding en la clase Attachment (que reemplaza MailAttachment), pero no tuve suerte. ¿Alguien ha resuelto esto en .NET 2.0?

Respuesta

10

¿Ha intentado hacer un pdfStream.Seek(0,SeekOrigin.Begin) antes de crear el archivo adjunto para restablecer la secuencia al principio?

+0

Sí, eso fue todo. Creo que toda la codificación fue una pista falsa :) – mlenarz

1

¿Ha verificado que el documento PDF no esté dañado en la matriz pdfData? Intenta escribir eso en un archivo y ábrelo.

Saludos
Kev

+0

Sí, lo intenté. Gracias por la sugerencia, sin embargo. – mlenarz

Cuestiones relacionadas