我有装载有HTML,我从出口得到了一个流。我可以从流这个网站中的一个字节[](是否有任何其他的方法?),和欲写此字节[]到一个HTML邮件主体。

之所以要做到这一点,我想将报表导出为HTML,并在邮件正文中使用这些数据,而不是将其导出为PDF文件,并把它作为附件。

希望这是不够清楚,让我知道,如果我需要补充一下。

由于

有帮助吗?

解决方案

我发现它。这很简单,但我没有找到结果,我想,直接具有格式化输出到邮件,问题是更多关于如何使用存储在流中的字节输出HTML。

我走流和创建StreamReader:

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

然后,在邮件对象的身体,我读取流的使用的StreamReader的内容:

mail.Body = reader.ReadToEnd();

这是所有。你觉得呢?

其他提示

您可以使用多部分MIME消息,并通过流至AlternateView构造为好,只是不关闭流或清理,直到你发送的消息后(调用MailMessage.Dispose()来处理清理为你,如果你喜欢)。如果你与你的解决方案去,一定要mail.IsBodyHtml设置为true,以使内容类型得到正确设置,否则接收邮件客户端可能不显示HTML作为HTML,因为它会认为它是纯文本。如果邮件的输出看起来在您的邮件客户端滑稽那么这可能是为什么。

在代码看起来是这样的(截断为仅相关部分):

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top