使用VB.net将邮件移动到Outlook中的其他文件夹时,Mailitem移动错误
在尝试使用VB.net中的Outlook Com Interop移动MailItem时,我在Outlook中遇到错误。我在访问邮件,阅读邮件或获取相关文件夹时没有任何问题,只是在尝试间歇性地移动邮件时出现此错误。
以下是应用程序报告的错误消息:
`System.Runtime.InteropServices.COMException(0x80040107): The operation failed. at Microsoft.Office.Interop.Outlook_Mailitem.Move(MAPIFolderDestFldr) at ApplicationName.MainWindow.EmailImport() at System.Threading....`
嗯,你明白了。
以下是相关代码:
Dim OutlookAp As New Outlook.Application
Dim NS As Outlook.Namespace = OutlookAp.GetNamespace("MAPI")
Dim ObjFolder As Outlook.Folder
Dim Inbox As Outlook.Folder
Dim CEBFolder As Outlook.Folder
Dim DestinationFolder As Outlook.Folder
Dim Mesg As Outlook.Mailitem
以下是我获取文件夹的方法:
For Each ObjFolder in NS.Folders
If ObjFolder.Name = "CEB Folder Name" Then
CEBFolder = ObjFolder
Exit For
End If
Next ObjFolder
编辑:包括其余文件夹:
For Each ObjFolder in CEBFolder.Folders
If ObjFolder.Name = "Inbox" then
Inbox = ObjFolder
Exit For
End If
Next ObjFolder
For Each ObjFolder in Inbox.Folders
If ObjFolder.Name = "Destination Folder" then
DestinationFolder = ObjFolder
Exit For
End If
Next ObjFolder
等等。以下是我如何移动信息:
For Counter = Inbox.Items.Count to 1 Step -1
If TypeName(Inbox.Items(Counter)) = "MailItem" then
Mesg = Ctype(Inbox.Items(Counter), Outlook.MailItem)
'Do some parsing of the message
Mesg.Move(DestinationFolder)
End If
Next Counter
这就是它。这段代码在大多数情况下似乎都是成功的,但是Outlook一次又一次不会让我移动一条消息,完全停止。
一如既往,非常感谢任何想法。
答案 0 :(得分:1)
您似乎永远不会分配DestinationFolder
,因此您尝试将邮件移至Null
。
答案 1 :(得分:0)
您似乎无法移动MailItems,这些邮件是系统对未传递的电子邮件的响应,它们显示为MailItem类型,但似乎不支持在文件夹之间移动-也许它们是虚拟邮件项目。在其他地方查看有关处理未送达邮件的主题