繁体   English   中英

Exchange 2016 的未读电子邮件

[英]Unread Emails for Exchange 2016

我曾经使用 EWSUtil 库从下面的 Exchange server2010 链接中获取多个用户的未读电子邮件。

https://gsexdev.blogspot.com/2008/11/find-unused-mailbox-powershell-gui.html

代码:

[void][Reflection.Assembly]::LoadFile("C:\EWSUtil.dll")

$mails=( "user0", "user1", "user2")
ForEach ($mail in $mails)
{
$mbcombCollection = @()

$specificuser = get-mailbox $mail

    $mbcomb = "" | select DisplayName,EmailAddress, Unread
    $mbcomb.DisplayName = $specificuser.DisplayName.ToString()
    $mbcomb.EmailAddress = $specificuser.WindowsEmailAddress.ToString()
    $mbMailboxEmail = $specificuser.WindowsEmailAddress.ToString()

    $ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$false, $null,$null,$null,$null)
    $dTypeFld = new-object EWSUtil.EWS.DistinguishedFolderIdType
    $dTypeFld.Id = [EWSUtil.EWS.DistinguishedFolderIdNameType]::inbox

    $mbMailbox = new-object EWSUtil.EWS.EmailAddressType
    $mbMailbox.EmailAddress = $mbMailboxEmail
    $dTypeFld.Mailbox = $mbMailbox

    $fldarry = new-object EWSUtil.EWS.BaseFolderIdType[] 1
    $fldarry[0] = $dTypeFld

    $fldList = $ewc.GetFolder($fldarry)
    [EWSUtil.EWS.FolderType]$pfld = [EWSUtil.EWS.FolderType]$fldList[0];
        $mbcomb.Unread = $pfld.UnreadCount
    $mbcombCollection += $mbcomb
$mbcombCollection
Add-Content C:\UnreadEmailCheck1.txt $mbcombCollection
}

但是现在我无法使用 Exchange server 2016 获取未读电子邮件计数(在我迁移 Exchange 之后)。

此库不适用于 Exchange 2016,编写此库的人Glen Scales建议了以下解决方案:

使用这个脚本: https : //github.com/gscales/Powershell-Scripts/blob/master/unReadModule2016.ps1

并获取最新的 EWS 托管 API(从 gi​​t hub 编译) https://github.com/gscales/Powershell-Scripts/blob/master/Microsoft.Exchange.WebServices.zip将 dll 放在与脚本相同的目录中。

然后运行

导入模块 .\\unReadModule2016.ps1

(这将导入模块 cmdlet)

并使用

Get-UnReadCountOnFolder -MailboxName user@mailbox.com

暂无
暂无

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

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