簡體   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