0

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

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

4

1 回答 1

0

嗯,我也做过类似的事情。对于我的每个附件,我将数据存储为二进制列,以及包含文件大小(以字节为单位)的单独列。为了从数据库中获取,我写了类似的东西(使用SqlCommand 和 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 对象有点笨拙。

于 2009-07-23T12:35:59.680 回答