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

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

我注意到附件类有1个过载接受一个stream。

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

是否有可能通过这个超载的byte[]

最简单的方法:

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

请注意,除非您使用asynchronous操作进行时髦的操作,否则MemoryStream是安全的,可以让您的生活更轻松。 无可否认,未来这不会有保证 ,但我认为它不太可能会改变。 我看不到任何迹象表明是否处置的附件处理其stream:(

您需要使用适当的MemoryStream构造函数重载将byte[]转换为MemoryStream

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

请注意, Attachment的构造函数的name参数指定了附件的内容types的名称,而不是附件本身的名称。