将二进制数据附加到邮件附件

时间:2012-07-03 05:02:49

标签: vb.net office-interop outlook-addin

我正在尝试将从SQL服务器检索到的二进制数据附加到电子邮件中作为附件,使用办公室插件中的VB.net。

如果指定了文件路径和文件名,我可以添加附件,但不能使用二进制数据,下面是我的示例代码:

Dim ms as System.IO.MemoryStream
'binaryData is retrieved from SQL server
'binaryData is a docx file stored in SQL server
ms = New System.IO.MemoryStream(binaryData)  

Dim att as New System.Net.Mail.Attachment(ms, System.Net.Mime.MediaTypeNames.Text.Plain)

mailItem.Attachments.Add(ms)  'mailItemm is Microsoft.Office.Interio.Outlook.MailItem

我收到错误

COMException was unhandled by user code
Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))

我正在使用:

Visual Studio 2010
.Net 4.0
Microsoft Outlook 2010

感谢。

2 个答案:

答案 0 :(得分:1)

看起来您正在尝试附加内存流,而不是您刚刚创建的附件。尝试更改此行:

mailItem.Attachments.Add(ms) 

到此:

mailItem.Attachments.Add(att) 

答案 1 :(得分:0)

最后,我将二进制数据保存到用户临时文件夹中的文件中,然后附加文件,然后从temp文件夹中删除文件,这样就更简单了。 感谢。