【发布时间】:2015-11-12 01:47:16
【问题描述】:
我想按域(可能还有用户)组织文件夹中的邮件。我有一个脚本,但它无法从交换用户那里获取 SMTP 地址。下面的代码是地址提取器的摘录。
///For each obj in objFolder.Items
If obj.SenderEmailAddress = "EX" Then
Set objSender = obj.Sender
If Not (objSender Is Nothing) Then
Set objExchUser = Sender.GetExchangeUser()
If Not (objExchUser Is Nothing) Then
strSender = objExchUser.PrimarySmtpAddress
End If
End If
Else
If obj.SenderEmailAddress = "" Then
strSender = "ERROR@ERROR.GOV"
Else
MsgBox obj.SenderEmailAddress
'MsgBox obj.PrimarySmtpAddress 'errs out
'MsgBox Sender.GetExchangeUser() 'errs out
'MsgBox Obj.Sender.GetExchangeUser() 'errs out
strSender = obj.PrimarySmtpAddress
End If
End If
///Next
该代码有效,但适用于来自电子邮件组(例如 helpdesk@myexchange.org)或欺骗性电子邮件地址的人。
obj.SenderEmailAddress 导致“/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (removedtextforstack)/CN=RECIPIENTS/CN=7E2removedtextforstackF6-USERNAME”
我相信这是意料之中的,但 Sender.GetExchangeUser() 给出了 Object Required 错误。我并不特别希望通过 AD 挖掘 3000 行代码来尝试为每封电子邮件查找 AD 代码/用户。我们使用 Office 365,它由许多人管理,因此访问地址列表并不难。
【问题讨论】:
-
哈!是的,我现在明白你的意思了……