たくさんのドキュメントやその他の添付ファイルを保存するWindowsフォームアプリケーション、つまりドキュメント管理システムがあります。その機能の1つは、一連の添付ファイルを受信者に電子メールで送信する機能です。これは、Outlookを自動化して新しい電子メールを作成するだけで、すべてのファイルをそのメッセージに添付するだけで、ユーザーは通常どおりOutlook2010を介して電子メールを送信します。
何か奇妙なことが起こります。システム内の添付ファイルの一部は、実際には.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