我有Windows Forms应用程序,它存储大量文档和其他附件 - 即文档管理系统。它的一个功能是将一堆附件通过电子邮件发送给收件人。它通过简单地自动化Outlook编写新电子邮件并将所有文件附加到该邮件,并且用户通过Outlook 2010正常发送电子邮件来实现此目的。
奇怪的事发生了。系统中的一些附件实际上是.msg文件(即已存储在文档管理系统中的其他电子邮件)。如果我们创建的电子邮件包含.msg附件,则当电子邮件到达目的地时,将删除所有附件。真正奇怪的是,这会影响一些收件人,但不是全部。但至关重要的是,只有当.msg文件在电子邮件的附件中时才会发生。如果电子邮件不包含.msg文件,则每次都可以正常工作。
有什么想法吗?
这是代码:
Public Shared Sub CreateEmail(ByVal emailAddressTo As String, ByVal subject As String, ByVal bodyText As String, ByVal docs As DespatchDocumentFileList)
' create the email
Dim olApp As Object = CreateObject("Outlook.Application") ' New Outlook.Application
Dim olMail As Object = olApp.CreateItem(0) ' Outlook.OlItemType.olMailItem
' init the email
With olMail
.BodyFormat = 2 ' Outlook.OlBodyFormat.olFormatHTML
.Subject = subject
.To = emailAddressTo
.Body = bodyText
For Each doc As DespatchDocumentFileInfo In docs
Dim DespatchFile As InternalClaimsLibrary.Despatch.DespatchDocumentFile = InternalClaimsLibrary.Despatch.DespatchDocumentFile.GetDespatchDocumentFile(doc.ID)
Dim FileName As String
FileName = InternalClaimsLibrary.FileUtils.FileHelper.CreateFileFromByteArray(DespatchFile.DespatchedImageData, IO.Path.GetFileName(DespatchFile.DespatchedFileName))
.Attachments.Add(FileName)
Next
End With
olMail.Display()
End Sub