首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Excel中的VBA获取收件人和CC列表中收件人的电子邮件地址

通过Excel中的VBA获取收件人和CC列表中收件人的电子邮件地址
EN

Stack Overflow用户
提问于 2022-05-04 08:53:02
回答 2查看 552关注 0票数 0

我在网上复制了一些有用的代码,可以从每封电子邮件中提取某些细节。

可以修改代码以包括收件人的电子邮件地址和CC列表中的收件人的电子邮件地址吗?

代码语言:javascript
运行
复制
Sub FetchEmailData()

Dim appOutlook As Object
Dim olNs As Object
Dim olFolder As Object
Dim olItem As Object
Dim iRow As Integer

' Get/create Outlook Application
On Error Resume Next
Set appOutlook = GetObject(, "Outlook.Application")
If appOutlook Is Nothing Then
    Set appOutlook = CreateObject("Outlook.Application")
End If
On Error GoTo 0

Set olNs = appOutlook.getnamespace("MAPI")
'Set olFolder = olNs.GetDefaultFolder(6) ' 6 == Inbox for some reason

Set olFolder = olNs.session.PickFolder

' Clear
ThisWorkbook.ActiveSheet.Cells.Delete

' Build headings:
Range("A1:E1") = Array("From:", "To:", "CC:", "Date", "SenderEmailAddress")

For iRow = 1 To olFolder.items.Count
    Cells(iRow + 1, 1) = olFolder.items.Item(iRow).Sender
    Cells(iRow + 1, 2) = olFolder.items.Item(iRow).To
    Cells(iRow + 1, 3) = olFolder.items.Item(iRow).CC
    Cells(iRow + 1, 4) = olFolder.items.Item(iRow).receivedtime
        
    If olFolder.items.Item(iRow).SenderEmailType = "EX" Then
        Cells(iRow + 1, 5) = olFolder.items.Item(iRow).Sender.GetExchangeUser().PrimarySmtpAddress
    Else
        On Error Resume Next

        Cells(iRow + 1, 5) = olFolder.items.Item(iRow).SenderEmailAddress
    End If
        
Next iRow

End Sub
EN

Stack Overflow用户

发布于 2022-05-04 09:47:39

可以使用Recipients属性获取Outlook中特定邮件项的所有收件人。Recipient.Type属性返回或设置表示收件人类型的长。对于邮件项,值显示在OlMailRecipientType枚举中。

  • olBCC -3-在项的BCC属性中指定收件人。
  • olCC -2-在项的CC属性中指定收件人。
  • olOriginator -0- Originator (发件人)的项目。
  • olTo -1-收件人在项的To属性中指定。

因此,您可以找到对应于CC字段的收件人对象,并使用Recipient.AddressEntry属性返回与解析收件人对应的AddressEntry对象。

代码语言:javascript
运行
复制
Set myAddressEntry = myRecipient.AddressEntry 

AddressEntry.Address属性返回或设置一个字符串,表示AddressEntry的电子邮件地址。对于Exchange,您可以使用AddressEntry.GetExchangeUser方法,如果ExchangeUser属于Exchange AddressList对象(如全局地址列表(GAL) ),并且对应于Exchange用户,则该方法返回表示AddressEntryAddressEntry对象。在这种情况下,ExchangeUser.PrimarySmtpAddress属性返回一个字符串,表示ExchangeUser的主要简单邮件传输协议(SMTP)地址。

您可能会发现如何:以编程方式填充Outlook中的TO、CC和BCC字段的文章很有帮助。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72110257

复制
相关文章

相似问题

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