el archivo adjunto de correo electrónico de MemoryStream viene vacío

_data es una matriz de byte [] de datos adjuntos.

Cuando estoy haciendo esto:

 var ms = new MemoryStream(_data.Length); 
 ms.Write(_data,0,_data.Length);
 mailMessage.Attachments.Add(new Attachment(ms, attachment.Name));

El archivo adjunto viene vacío. En realidad, Outlook muestra el tamaño del archivo pero es incorrecto.

Bueno, pensé que hay un problema en mis _datos. Entonces decidí probar este enfoque:

 var ms = new MemoryStream(_data.Length); 
 ms.Write(_data,0,_data.Length);
 fs = new FileStream(@"c:\Temp\"+attachment.Name,FileMode.CreateNew);
 fs.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
 fs.Flush();
 fs.Close();
 mailMessage.Attachments.Add(new Attachment(@"c:\Temp\" + attachment.Name));

Y eso funciona. ¿Qué le pasa al primero?

Respuestas a la pregunta(2)

Su respuesta a la pregunta