我有一個byte[]
與文件的內容。我想用System.Net.Mail
作爲附件發送。如何從字節數組添加電子郵件附件?
我注意到附件類有1個過載接受一個流。
Attachment att = new Attachment(Stream contentStream,string name);
是否可以將byte[]
通過此超載?
我有一個byte[]
與文件的內容。我想用System.Net.Mail
作爲附件發送。如何從字節數組添加電子郵件附件?
我注意到附件類有1個過載接受一個流。
Attachment att = new Attachment(Stream contentStream,string name);
是否可以將byte[]
通過此超載?
最簡單的方法:
Attachment att = new Attachment(new MemoryStream(bytes), name);
請注意,除非你做時髦的東西與異步操作,MemoryStream
是安全離開未予處置,這可能使生活變得更容易。誠然,沒有保證這將是未來的事實,但我認爲它不太可能會改變。我看不到任何表示,其流:(
是否附件的處置處置你需要使用適當的MemoryStream constructor overload轉換byte[]
爲MemoryStream
。
Attachment att = new Attachment(new MemoryStream(myBytes), name);
注意,名參數爲Attachment's constructor指定附件的內容類型的名稱,而不是附件本身的名稱
看來,名稱參數是文件的名稱,而不是內容類型。請參閱備註:https://msdn.microsoft.com/en-us/library/system.net.mime.contenttype.name.aspx – 2017-05-24 05:44:04
謝謝喬恩,正是我需要的! – 2010-04-06 10:07:35
好點,我注意到添加基於文件的附件時,我需要處置附件對象以釋放文件上的句柄。當然,這個流應該由GC來處理,因爲它不是IO操作? – 2010-04-06 10:14:47
@JL:確實如此。 – 2010-04-06 12:48:52