Pregunta

Tengo una corriente cargado con HTML que obtuve de una exportación. Puedo aprovechar esta html de la corriente en un byte [] (¿hay alguna otra manera?), Y yo quiero escribir este byte [] a un cuerpo de correo HTML.

La razón para hacer esto es que quiero exportar un informe a HTML, y utilizar estos datos en el cuerpo del correo, en lugar de exportar a PDF y enviarlo como archivo adjunto.

Esperamos que sea lo suficientemente claro, quiero saber si tengo que añadir algo.

Gracias

¿Fue útil?

Solución

Lo encontré. Es muy simple, aunque no he encontrado el resultado que me gustaría, que tiene una salida con formato directamente al correo, la cuestión era más acerca de cómo usar los bytes almacenados en una corriente de salida HTML.

Tomo la corriente y crear un StreamReader:

            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);

Luego, en el cuerpo del objeto electrónico, leí el contenido de la secuencia utilizando el StreamReader:

mail.Body = reader.ReadToEnd();

Eso es todo. ¿Qué opinas?

Otros consejos

Puede utilizar un mensaje multiparte Mime y pasar la corriente al constructor AlternateView así, simplemente no cerrar la corriente o limpiarlo hasta después de que haya enviado el mensaje (llamar MailMessage.Dispose () para gestionar la limpieza para usted si lo desea). Si usted va con su solución, asegúrese de ajustar mail.IsBodyHtml true para que el tipo de contenido para ponerse correctamente de lo contrario el cliente de correo receptor no puede mostrar el código HTML como HTML, ya que pensará que es texto plano. Si la salida del correo se ve rara en su cliente de correo, entonces eso es probablemente por qué.

El código sería algo como esto (truncado a sólo las partes pertinentes):

MailMessage message = new MailMessage();
message.AlternateViews.Add(new AlternateView(stream, new ContentType("text/HTML"));
// do NOT set Body, IsBodyHtml, or ContentType on MailMessage or 
// you'll mess up the mime types

smtpClient.Send(message);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top