如何从字节数组添加电子邮件附件?

时间:2010-04-06 10:05:14

标签: c#

我有一个byte[]的文件内容。我想使用System.Net.Mail将其作为附件发送。

我注意到附件类有1个重载,它接受一个流。

Attachment att = new Attachment(Stream contentStream,string name);

是否可以通过此重载传递byte[]

2 个答案:

答案 0 :(得分:188)

最简单的方法:

Attachment att = new Attachment(new MemoryStream(bytes), name);

请注意,除非您使用异步操作执行时髦的操作,否则MemoryStream可以安全地保留不受限制的内容,这可能会让您的生活更轻松。诚然,没有保证将来也是如此,但我认为它不太可能改变。我看不出任何关于处理附件是否处理其流的指示:(

答案 1 :(得分:33)

您需要使用相应的MemoryStream constructor overloadbyte[]转换为MemoryStream

Attachment att = new Attachment(new MemoryStream(myBytes), name);

请注意,Attachment's constructor名称参数指定附件内容类型的名称,而不是附件本身的名称。