我想将在SQL Server中存储为二进制对象的PDF文件附加到电子邮件中,但不在磁盘上创建(临时)文件。
我已经迈出了第一步,将SQL文件中的二进制字段中的PDF文件作为byte[]
数组提取出来。
此外,我还可以设置MailMessage
:
MailMessage aMailMessage = new MailMessage();
// set address, subject, body
aMailMessage.Attachments.Add(attachment);
我遇到的是attachment
对象:
Attachment attachment = new Attachment(... what goes here? ...);
Attachment
的构造函数主要接受string fileName
(我没有和想要的)或System.IO.Stream contentStream
。
所以我的问题是:使用给定的byte[]
数组,可以创建正确的Attachment
对象,而不需要磁盘上的中间文件以及我需要执行哪些步骤?
提前谢谢!
答案 0 :(得分:2)
您可以将byte []转换为MemoryStream并从中创建Attachment
实例。这是一个例子:
ContentType ct = new ContentType(MediaTypeNames.Application.Pdf);
MemoryStream pdf = new MemoryStream(pdfContent);
Attachment data = new Attachment(pdf, ct);