Vb.net Outlook在已发送邮件文件夹getfirst from last weeks items中选择第一项,而不是第一项
在“我的Outlook加载项”中,在将项目添加到“已发送邮件”文件夹时,会运行子文件夹。然后将此项目存档到用户定义的文件夹(在邮件项目打开时完成)。在下面的代码中,它显示了如何获取send item文件夹中的第一个项目Vb.net Outlook在已发送邮件文件夹getfirst from last weeks items中选择第一项,而不是第一项,vb.net,outlook,vsto,Vb.net,Outlook,Vsto,在“我的Outlook加载项”中,在将项目添加到“已发送邮件”文件夹时,会运行子文件夹。然后将此项目存档到用户定义的文件夹(在邮件项目打开时完成)。在下面的代码中,它显示了如何获取send item文件夹中的第一个项目 Public Sub mySentItems_ItemAdd() Handles mySentItems.ItemAdd 'variables Dim AppOutlook As New Outlook.Application Dim ns As Out
Public Sub mySentItems_ItemAdd() Handles mySentItems.ItemAdd
'variables
Dim AppOutlook As New Outlook.Application
Dim ns As Outlook.NameSpace = AppOutlook.Session
Dim siFolder As Outlook.Folder = CType(ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail), Outlook.Folder)
'load the newly added mail as mailitem
Dim mailitem As MailItem = siFolder.Items.GetFirst
MsgBox(mailitem.Subject.ToString)
End Sub
几周前,它工作正常,但现在它没有得到文件夹中的第一项,而是从子文件夹“Last week”中得到文件夹中的第一项。在下面的图片中,我得到的物品用黄色标记,我想要的物品用黑线划线。有人知道我如何解决这个问题吗
首先,无需创建新的Outlook
应用程序
实例:
Dim AppOutlook As New Outlook.Application
相反,您应该使用外接程序类的应用程序
属性
无论如何,事件提供了一个参数,表示添加到文件夹中的项
Public WithEvents myOlItems As Outlook.Items
Public Sub Initialize_handler()
Set myOlItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items
End Sub
Private Sub myOlItems_ItemAdd(ByVal Item As Object)
Dim myOlMItem As Outlook.MailItem
Dim myOlAtts As Outlook.Attachments
Set myOlMItem = myOlApp.CreateItem(olMailItem)
myOlMItem.Save
Set myOlAtts = myOlMItem.Attachments
' Add new contact to attachments in mail message
myOlAtts.Add Item, olByValue
myOlMItem.To = "Sales Team"
myOlMItem.Subject = "New contact"
myOlMItem.Send
End Sub
好的,我想出来了,最后添加的项目不是列表中的第一项,而是最后一项,因此,不是:
Dim mailitem As MailItem = siFolder.Items.GetFirst
我需要使用
Dim mailitem As MailItem = siFolder.Items.GetLast
除此之外,它看起来更好,它不能解决我的问题。。程序在正确的文件夹中搜索,但没有从该文件夹中获取第一个项目(如我在帖子中的屏幕截图所示)