如果通讯组在 Exchange 2010 上没有任何成员,电子邮件会发生什么情况

如果通讯组在 Exchange 2010 上没有任何成员,电子邮件会发生什么情况

我们在 Exchange 2010 上有一个通讯组,很长时间没有成员(没有人注意到)。发到这个组的电子邮件会怎样?没有回复消息或任何东西。

答案1

不幸的是,所有这些电子邮件都进入了黑洞。Exchange 已完成其工作,它查找了收件人,但没有任何内容,因此丢弃了电子邮件。您需要存档/合规性设置才能检索这些电子邮件。

另请注意:您也不会收到任何 NDR,该过程确实按预期完成。

答案2

不幸的是,它们无处可去。我们已设置一个 PowerShell 脚本,该脚本每天运行,如果发现空的分发组,它会向我们发送电子邮件。

只需将其放入.ps1 文件中并安排它按照您喜欢的时间间隔运行。

$FromAddress = "[email protected]"
$ToAddress = "[email protected]"
$MessageSubject = "Empty distribution groups"
$SendingServer = "exchserver.example.com"

$groups = Get-DistributionGroup
$emptygroups = ($groups | ? { !(Get-DistributionGroupMember $_) })

if ($emptygroups.count -gt 0) {
    $MessageBody = "The following Exchange distribution groups have no members:`r`n`r`n"
    $MessageBody += ($emptygroups | Select-Object DisplayName | Out-String)

    $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody

    $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
    $SMTPClient.Send($SMTPMessage)
}

答案3

以下是可能代码的更新。由于它只返回空组列表,因此查询效率更高。有点晦涩难懂,因为人们会认为 Get-DistributionGroup 不知道成员(因此需要 Get-DistributionGroupMember cmdlet)。

$emptygroups = Get-DistributionGroup -Filter {members -eq $null}

我已经确认它适用于 Exchange 2010、SP2、RU5v2。

答案4

谢谢!对我来说,上面的脚本什么都没发生 - 不确定它是否是不同的 Powershell 版本或类似版本(Exchange 2010、Server 2008 R2),但“count”属性中没有任何内容。

我必须更换:

if ($emptygroups.count -gt 0) {

和:

$emptygroupcount = echo $emptygroups | measure
if ($emptygroupcount.Count -gt 0) {

如果有人想知道如何安排这个,因为“基本”Powershell 无法识别 Exchange 命令,我按照以下方法创建了一个包装器批处理文件http://social.technet.microsoft.com/Forums/exchange/en-US/0cad57bf-1113-4622-aac3-c3278fa97d72/how-to-schedule-a-powershell-script-through-schedule-tasks?forum=exchange2010

相关内容