如何将存储为SQL Server中的二进制对象的PDF文件附加到电子邮件中?

时间:2010-06-11 12:16:10

标签: .net sql-server email attachment mailmessage

我想将在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对象,而不需要磁盘上的中间文件以及我需要执行哪些步骤?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将byte []转换为MemoryStream并从中创建Attachment实例。这是一个例子:

ContentType ct = new ContentType(MediaTypeNames.Application.Pdf);
MemoryStream pdf = new MemoryStream(pdfContent);
Attachment data = new Attachment(pdf, ct);