Vb.net Outlook 在已发送邮件文件夹中优先选择上周的项目而不是第一个项目
Vb.net Outlook pick first in sent mail folder getfirst from last weeks items instead of the first item
在我的 Outlook 插件中,当一个项目被添加到已发送邮件文件夹时,子项是 运行。然后将此项目存档到用户定义的文件夹(在打开邮件项目时完成)。在下面的代码中,它显示了我如何获取发送项目文件夹中的第一个项目。
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" 获取文件夹中的第一项。在下图中,我得到的项目用黄色标记,我想要的项目用黑线下划线。有谁知道我该如何解决这个问题?
首先,不需要新建OutlookApplication
实例:
Dim AppOutlook As New Outlook.Application
相反,您应该使用加载项的 Application
属性 class。
无论如何,Items.ItemAdd 事件提供了一个参数,表示添加到文件夹的项目。
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
在我的 Outlook 插件中,当一个项目被添加到已发送邮件文件夹时,子项是 运行。然后将此项目存档到用户定义的文件夹(在打开邮件项目时完成)。在下面的代码中,它显示了我如何获取发送项目文件夹中的第一个项目。
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" 获取文件夹中的第一项。在下图中,我得到的项目用黄色标记,我想要的项目用黑线下划线。有谁知道我该如何解决这个问题?
首先,不需要新建OutlookApplication
实例:
Dim AppOutlook As New Outlook.Application
相反,您应该使用加载项的 Application
属性 class。
无论如何,Items.ItemAdd 事件提供了一个参数,表示添加到文件夹的项目。
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