Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Get-MessageUnreadHistoryByMessageId ($MessageId, $TargetUserEmail=$null) {
- $Query = "rfc822msgid:$MessageId"
- if ($null -ne $TargetUserEmail) {
- $ID = Get-GGmailMessage -Query $Query -UserId me -All -TargetUserEmail $TargetUserEmail
- $Message = Get-GGmailMessage -UserId me -Id $Id.id -TargetUserEmail $TargetUserEmail
- } else {
- $ID = Get-GGmailMessage -Query $Query -UserId me -All
- $Message = Get-GGmailMessage -UserId me -Id $Id.id
- }
- $foundMessageStart = $false
- $Increment = 1000
- do {
- $StartId = $Message.HistoryId - $Increment
- if ($null -ne $TargetUserEmail) {
- $History = Get-GGmailHistory -UserId me -StartHistoryId $StartId -TargetUserEmail $TargetUserEmail
- } else {
- $History = Get-GGmailHistory -UserId me -StartHistoryId $StartId
- }
- $MessageHistory = $History | where {$_.Messages.Id -contains $id.id}
- if (($MessageHistory | where {$_.MessagesAdded -ne $null}) -eq $null) {
- $Increment = $Increment + ($Increment * 2)
- continue
- } else {
- $foundMessageStart = $true
- }
- } while ($foundMessageStart -eq $false)
- $Results = New-Object System.Collections.ArrayList
- foreach ($MH in $MessageHistory) {
- if ($Null -ne $MH.MessagesAdded) {
- $Unread = if($null -ne $MH.MessagesAdded -and `
- $null -ne $MH.MessagesAdded[0].Message.LabelIds -and `
- $MH.MessagesAdded[0].Message.LabelIds -contains "UNREAD"){"UNREAD"}else{"READ"}
- $Results.Add((new-object -TypeName psobject -Property `
- @{"History"=$MH.Id;"Action"="Message Added";"Status"=$Unread})) | Out-Null
- }
- if ($Null -ne $MH.MessagesDeleted) {
- $Unread = if($null -ne $MH.MessagesDeleted -and `
- $null -ne $MH.MessagesDeleted[0].Message.LabelIds -and `
- $MH.MessagesDeleted[0].Message.LabelIds -contains "UNREAD"){"UNREAD"}else{"READ"}
- $Results.Add((new-object -TypeName psobject -Property `
- @{"History"=$MH.Id;"Action"="Message Removed";"Status"=$Unread})) | Out-Null
- }
- if ($Null -ne $MH.LabelsAdded) {
- $Unread = if($null -ne $MH.LabelsAdded -and `
- $null -ne $MH.LabelsAdded[0].Message.LabelIds -and `
- $MH.LabelsAdded[0].Message.LabelIds -contains "UNREAD"){"UNREAD"}else{"READ"}
- $Results.Add((new-object -TypeName psobject -Property `
- @{"History"=$MH.Id;"Action"="Labels Added";"Status"=$Unread})) | Out-Null
- }
- if ($Null -ne $MH.LabelsRemoved) {
- $Unread = if($null -ne $MH.LabelsRemoved -and `
- $null -ne $MH.LabelsRemoved[0].Message.LabelIds -and `
- $MH.LabelsRemoved[0].Message.LabelIds -contains "UNREAD"){"UNREAD"}else{"READ"}
- $Results.Add((new-object -TypeName psobject -Property `
- @{"History"=$MH.Id;"Action"="Labels Removed";"Status"=$Unread})) | Out-Null
- }
- }
- return $Results
- }
- #Get-MessageUnreadHistoryByMessageId -MessageId CAD3t3Ryd71hXYfA@mail.gmail.com -TargetUserEmail username
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement