繁体   English   中英

使用Powershell列出Office 365邮箱中的电子邮件

[英]List emails in an Office 365 mailbox using Powershell

在下面的Powershell脚本中,我需要查看共享邮箱mobileprint@abcdef.com的收件箱/消息。 但是脚本会返回admin帐户admin@abcdef.com的收件箱/消息。
管理员帐户有权访问共享邮箱,并且应向脚本提供访问共享邮箱的凭据。

[Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll")
$s = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService
$AdminName = "admin@abcdef.com"
$Pass = Get-Content "cred_.txt" | ConvertTo-SecureString
$s.Credentials = New-Object Net.NetworkCredential($AdminName , $Pass)
$s.AutodiscoverUrl("mobileprint@abcdef.com", {$true})
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
$inbox

我建议您查看https://gsexdev.blogspot.com/2016/10/ews-basics-accessing-and-using-shared.html

关于使用EWS访问文件夹,它有一些非常好的解释。

您最感兴趣的部分是这里:

要访问EWS中的邮箱文件夹,您需要知道该文件夹的EWSId,该规则的一个例外是WellKnownFolders,如Inbox,Contacts,Calendar等。使用这些WellKnowFolders,您可以告诉EWS您想要哪个文件夹的邮箱,而无需知道该文件夹的EWSId。

例如,要访问共享邮箱中的收件箱,请使用FolderId重载定义要访问的folderId,然后将其绑定到该文件夹​​:

$ folderid = new-objectMicrosoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName] :: Inbox,$ MailboxName)

$ Inbox = [Microsoft.Exchange.WebServices.Data.Folder] :: Bind($ service,$ folderid)

谢谢亨里克。 我终于明白了。 我必须使用“模拟”行来使其正常工作。 这有助于使用EWS模拟和PowerShell登录到Exchange Online邮箱

 [Reflection.Assembly]::LoadFile("C:\\Program Files\\Microsoft\\Exchange\\Web Services\\2.0\\Microsoft.Exchange.WebServices.dll") $s = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $Mailbox = "mobileprint@abcdef.com" $AdminName = "admin@abcdef.com" $Pass = Get-Content "cred_.txt" | ConvertTo-SecureString $s.Credentials = New-Object Net.NetworkCredential($AdminName , $Pass) $s.AutodiscoverUrl($AdminName, {$true}) $s.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress,$Mailbox ) $InboxFolder= new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$ImpersonatedMailboxName) $Inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s,$InboxFolder) $inbox 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM