I have an excel document represented as a byte[] and I'm wanting to send it as an attachment in an email.
I'm having a bit of trouble constructing the attachment.
I can create an Attachment which has the following constructors:
(Stream contentStream, ContentType contentType)
(Stream contentStream, string name)
(Stream contentStream, string name, string mediaType)
My idea at the moment is to create a MemoryStream from the byte[] and pass it to the method which creates the attachment.
Unfortunately I can't see a way to obtain the intended filename and content type from the MemoryStream and I also can't see how to supply the correct content type. There are options for plain text, Pdf, Rtf etc but none that I can see that immediately jump out at me as the one I should use for an Excel document.
The closest I can find is MediaTypeNames.Application.Octet which states:
The Octet member designates that the attachment contains generic binary data.
However, even if this is the one to use, unless it can be passed as a property of the Stream then my method for sending emails will only be able to send a byte[] as an Excel document...
Is there perhaps some other sort of Stream I could use? Or will I have to create my own type of Stream that has the details I need.
Surely someone out there has done this thing before and surely Microsoft would have thought this through to this level....
Any help would be much appreciated.
Update: Please don't vote for any answers that use the constructors that take the filename as a string. I'm really needing help using the ones that take a Stream...I want to avoid having to write the file to disk, email it, and then immediately delete it. Since there is a met