2017-04-20 79 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

這兩個都給你帶回你的消息內容,如主題,來自,和任何。