首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从共享的Outlook邮箱中提取电子邮件?

如何从共享的Outlook邮箱中提取电子邮件?
EN

Stack Overflow用户
提问于 2018-11-09 15:14:24
回答 1查看 297关注 0票数 0

我试图从我们使用的共享邮箱中提取所有的电子邮件,我尝试了下面的内容和它的工作,但只从我的主/默认收件箱。

我一直试图让它从共享邮箱工作,只是似乎无法让它发挥作用。我不是一个VBA专家,我把它从其他线程中收集起来,所以如果能提供任何帮助,我们将不胜感激:)

代码语言:javascript
复制
Sub GetFromOutlook()

Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer

Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox)


i = 1

For Each OutlookMail In Folder.Items
    If OutlookMail.ReceivedTime >= Range("From_date").Value Then
        Range("eMail_sender").Offset(i, 0).Value = OutlookMail.SenderName
        Range("eMail_date").Offset(i, 0).Value = OutlookMail.ReceivedTime
        Range("eMail_subject").Offset(i, 0).Value = OutlookMail.Subject
        'Range("eMail_Recipients").Offset(i, 0).Value = OutlookMail.Recipients
        Range("eMail_text").Offset(i, 0).Value = OutlookMail.Body

        i = i + 1
    End If
Next OutlookMail

Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing

End Sub

我也试过了,但没能成功:

代码语言:javascript
复制
Sub GetFromOutlook()

Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer


Dim olShareName As Outlook.Recipient


Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set olShareName = OutlookNamespace.CreateRecipient("MailboxName")

Set Folder = OutlookNamespace.GetSharedDefaultFolder(olShareName, olFolderInbox).Folders("Mailbox@XYZ.com").Folders("Inbox")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 15:32:58

在搜索Folder之前,您似乎需要将您的olFolderInbox变量设置为共享收件箱。

这就是对我有用的东西:

代码语言:javascript
复制
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Outlook.Namespace
Dim targetFolder As Outlook.MAPIFolder
Dim firstFolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem

Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set firstFolder = OutlookNamespace.Folders("your shared mailbox name")
Set targetFolder = firstFolder.Folders("Inbox")

For spot = 1 To 500
    If TypeOf targetFolder.Items(spot) Is MailItem Then
        Set olMail = targetFolder.Items(spot)
        If olMail.ReceivedTime > .... Then

        ......

        End If
    End If
Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53228405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档