我有以下代码:
For each Item in ofChosenFolder.Items
msgbox Item.Subject
for each recip in Item.Recipients
msgbox "sent to " & recip.address
msgbox "sent to " & recip.addressEntry
next
next
我有一些电子邮件发给我awalker@example.com,其他邮件发送到projects@example.com。
我的交换邮箱收到了所有邮件。
使用上面的代码我总是得到我的Exchange /O=EXAMPLE/OU=EXCHANGE.../CN=RECIPIENTS/CN=A Walker等,以及我的Exchange名称“Walker”。这是因为Exchange根据全球通讯簿解析了电子邮件。
有没有办法阻止它解析电子邮件地址并确定电子邮件发送到的实际smtp地址?
答案 0 :(得分:1)
这看起来像一个完全有效的EX类型地址。获取SMTP地址
检查AddressEntry.Type
属性。如果是“SMTP”,只需使用AddressEntry.Address
属性。
如果是“EX”,请使用AddressEntry.GetExchangeUser.PrimarySmtpAddress
答案是获得PR_TRANSPORT_MESSAGE_HEADERS
。
要在VBS中执行此操作:
For Each Item in myNameSpace.GetDefaultFolder(olFolderInbox).items
PropName = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"
Set oPA = Item.PropertyAccessor
Header = oPA.GetProperty(PropName)
'parse the "To" line out of your header to get the email address
Next