我正在尝试将从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
感谢。
答案 0 :(得分:1)
看起来您正在尝试附加内存流,而不是您刚刚创建的附件。尝试更改此行:
mailItem.Attachments.Add(ms)
到此:
mailItem.Attachments.Add(att)
答案 1 :(得分:0)
最后,我将二进制数据保存到用户临时文件夹中的文件中,然后附加文件,然后从temp文件夹中删除文件,这样就更简单了。 感谢。