如何通过PowerShell从Oulook文件夹中的电子邮件中获取电子邮件地址?
我有一个Outlook文件夹,我们称之为如何通过PowerShell从Oulook文件夹中的电子邮件中获取电子邮件地址?,powershell,email,outlook,mapi,Powershell,Email,Outlook,Mapi,我有一个Outlook文件夹,我们称之为LoremIpsum,其中有1000多封电子邮件草稿,我想通过PowerShell进行枚举和筛选。我可以使用以下脚本访问文件夹并查看电子邮件: Function HandleRemaining { [CmdletBinding()] Param() BEGIN { Clear-Host } PROCESS { $outlook = New-Object -ComObject out
LoremIpsum
,其中有1000多封电子邮件草稿,我想通过PowerShell进行枚举和筛选。我可以使用以下脚本访问文件夹并查看电子邮件:
Function HandleRemaining {
[CmdletBinding()]
Param()
BEGIN {
Clear-Host
}
PROCESS {
$outlook = New-Object -ComObject outlook.application
$mapi = $outlook.getnamespace("MAPI");
$email = $mapi.Folders.Item(1).Folders.Item('LoremIpsum').Items(1)
foreach ($recip in $email.Recipients) {
$recip
}
$email.To
$email.CC
}
END {
}
}
HandleRemaining
问题在于,无论是$recip
还是$email。若要将的电子邮件地址返回到该电子邮件的或CC
,我将获取此人的解析姓名,例如:
Application : Microsoft.Office.Interop.Outlook.ApplicationClass
Class : 4
Session : Microsoft.Office.Interop.Outlook.NameSpaceClass
Parent : System.__ComObject
Address : /o=ExchangeLabs/ou=Exchange Administrative Group (ALPHA-NUMERIC)/cn=Recipients/cn=LONG-ALPHANUMERIC-HERE
AddressEntry : System.__ComObject
AutoResponse :
DisplayType : 0
EntryID : <snip>
Index : 1
MeetingResponseStatus : 0
Name : John Walker
Resolved : True
TrackingStatus : 0
TrackingStatusTime : 01-Jan-01 00:00:00
Type : 1
PropertyAccessor : System.__ComObject
Sendable : True
John Walker
应用程序:Microsoft.Office.Interop.Outlook.ApplicationClass
班级:4
会话:Microsoft.Office.Interop.Outlook.NameSpaceClass
父对象:系统。\uuuu ComObject
地址:/o=ExchangeLabs/ou=Exchange管理组(字母数字)/cn=Recipients/cn=LONG-ALPHANUMERIC-HERE
AddressEntry:系统对象
自动响应:
显示类型:0
EntryID:
索引:1
会议响应状态:0
姓名:约翰·沃克
决定:正确
跟踪状态:0
追踪时间:01-Jan-01 00:00:00
类型:1
属性接受者:系统。\u共同对象
可发送:对
尊尼获加
我更改了号码和密码以保护隐私,但这是我得到的回报那么,我如何才能获得给定电子邮件草稿收件人的正确电子邮件地址?我认为您需要使用PropertyAccessor
$PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
$smtpAddress = $recip.PropertyAccessor.GetProperty($PR_SMTP_ADDRESS)
请参见此处(警告!VBA):Holy sh**。我讨厌你,微软,看看这些阴暗的东西,事实上这才是有效的。非常感谢你,伙计!您应该编辑您的帖子,将$
添加到PR\u SMTP\u地址之前
如果将来对其他人有帮助,请在此处查看更多属性/架构: