2017-04-20 53 views
1

因此,我正在检查我遇到的问题。获取PowerShell中收到的电子邮件的主题

我收到了来自我的学校(Office 365)的电子邮件,我想用PowerShell打印位于收件箱中的每封电子邮件的电子邮件主题。

我已经找到了方法打下了连接

$UserCredential = Get-Credential 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://smtp.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection 
function Connect-O365 { 
    $session365 = New-PSSession ` 
        -ConfigurationName Microsoft.Exchange ` 
        -ConnectionUri "https://smtp.office365.com/powershell-liveid/" ` 
        -Credential $UserCredential 
        -Authentication Basic ` 
        -AllowRedirection 
    Import-Module (Import-PSSession $session365 -AllowClobber) -Global 
} 

,并发现了Get-Mailbox cmdlet的。

但现在的问题是,我还没有找到任何实际的例子或方法,继续帮助我印刷电子邮件主题。

我已经做了相当一些研究,并没有设法找到类似:

Get-Mailbox -Identity "user" |Select-MailBox * |Where-Object $_.MailBoxName = "Inbox" 

这是不可能的,或者我必须使用另一种方法?

+1

上次我检查了你只能用Outlook或类似的客户端解析邮件主题,你无法从管理中收集足够的信息。你可以用'Get-MessageTrackingLog'获得一些数据,一个显示消息的主题,但是如果你想要所有的邮箱,最好的办法就是连接'Outlook.Application'(需要在本地机器上安装Office),然后解析您的收件箱。 – Vesper

+0

非常感谢您的回答Vesper,我会做一些进一步的研究 –

+1

您应该使用EWS API(或使用Search-mailbox或Get-MessageTrace cmdlet,但EWS在我看来更好)。有关如何在Powershell中使用EWS的信息,您应该查看SO用户Glen Scales(http://gsexdev.blogspot.nl/)的博客,他已经写了很多很好的示例。使用Outlook COM对象不是最好的方法,它速度很慢,并且不以适当的方式支持自动化。 – bluuf

回答

1

如果你有,你可以通过他们的graph api endpoint

使用Office 365 API因为这基本上是一个REST端点您可以使用Invoke-WebrequestInvoke-RestMethod的cmdlet的Office365订阅。

或更具体地说Outlook api

这两个都给你带回你的消息内容,如主题,来自,和任何。

相关问题