SQL BLOB的ASPNet EMail附件

时间:2009-07-23 12:01:04

标签: asp.net sql-server email blob

我们将计划的电子邮件信息存储在SQL Server 2005中。电子邮件信息中包含不同文件类型的0 - 3个附件。我有一个运行'x'分钟的VB.net Windows服务,使用来自SQL Server的电子邮件信息填充数据集,构建电子邮件,并通过ASPNet电子邮件发送它们。

尝试从BLOB构建和添加附件会导致电子邮件发送方法超时,即使附件只是一个15字节的文本文件。将路径直接硬编码到文件中可以正常工作。我已经尝试了几种方法并且无法正确使用它。

1 个答案:

答案 0 :(得分:0)

嗯,我做了类似的事情。对于我的每个附件,我将数据存储为二进制列,以及包含文件大小的单独列(以字节为单位)。为了从数据库中获取我写的东西(usingSqlCommand和SqlDataReader类):

attachment = new byte[size];

sqlReader.GetBytes(sqlReader.GetOrdinal("attachment"), 0, attachment, 0, size);

System.IO.MemoryStream s = new System.IO.MemoryStream(attachment, true);
s.Write(attachment, 0, attachment.Length);

太依赖于MailMessage类(简称mm);

System.IO.MemoryStream s = new System.IO.MemoryStream(attachment, false);

Attachment attached = new Attachment(s, "some file name");
mm.Attachments.Add(attached);

也许这些摘录会有所帮助!我从两个不同的自定义类中提取代码,因此每个提取中的MemoryStream对象都有点笨拙。