繁体   English   中英

从非默认收件箱接收电子邮件?

[英]Get email from non default inbox?

我正在使用以下 vba 代码从我的收件箱文件夹中获取电子邮件并将它们移动到名为供应商的子文件夹中。 目前,电子邮件已从我的默认电子邮件收件箱中移出,但我有一个名为 purcashing@hewden.co.uk 的帐户,我希望它从此收件箱中获取电子邮件并将其移至此帐户中名为 Suppliers 的子文件夹中。

有人可以告诉我我将如何改变 GetDefaultFolder 来实现这一点。 谢谢

Sub MoveItems()
 Dim myNameSpace As Outlook.NameSpace
 Dim myInbox As Outlook.Folder
 Dim myDestFolder As Outlook.Folder
 Dim myItems As Outlook.Items
 Dim myItem As Object


 Set myNameSpace = Application.GetNamespace("MAPI")
 Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
 Set myItems = myInbox.Items
 Set myDestFolder = myInbox.Folders("Supplier")
 Set myItem = myItems.Find("[Subject] = 'Introduction'")
 While TypeName(myItem) <> "Nothing"
 myItem.Move myDestFolder
 Set myItem = myItems.FindNext
 Wend
End Sub

不要使用 Namespace.GetDefaultFolder,而是从 Namespace.Stores 集合中检索适当的存储并使用 Store.GetDefaultFolder。

我刚刚使用了 Dmitry 的建议,它的作用就像一个魅力。

希望对你有帮助\\o/

Sub GetEmailFromNonDefaultInbox()
    Dim myOlApp As New Outlook.Application
    Dim myNameSpace As Outlook.Namespace
    Dim myInbox As Outlook.MAPIFolder
    Dim myitems As Outlook.Items
    Dim strFilter As String

    ' let the user choose which account to use
    Set myAccounts = myOlApp.GetNamespace("MAPI").Stores
    For i = 1 To myAccounts.count
        res = MsgBox(myAccounts.Item(i).DisplayName & "?", vbYesNo)
        If res = vbYes Then
            Set myInbox = myAccounts.Item(i).GetDefaultFolder(olFolderInbox)
            Exit For
        End If
    Next
    If myInbox Is Nothing Then Exit Sub ' avoid error if no account is chosen

    ' query emails by subject
    strFilter = "@SQL=""urn:schemas:httpmail:subject"" like '%YOUR SUBJECT%'"
    Set myitems = myInbox.Items.Restrict(strFilter)

    ' show some feedback if no email is found
    If myitems.count = 0 Then 
        MsgBox "Nothing found. Try another account."
        Exit Sub
    End If

    ' get the most recent email
    myitems.Sort "ReceivedTime", True
    Set myitem = myitems.GetFirst
    If myitem.Class = olMail Then
        ' and now you can do whatever you want
        MsgBox (myitem.Subject)
    End If
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM