Realmente esto puede suceder hasta donde se, en todas las versiones de SharePoint, porque a mi juicio es un error de diseño en SharePoint.
El tema es que SharePoint tiene un trabajo o Job llamado "Immediate Alerts" que ejecuta de forma predeterminada cada 5 minutos y lo que hace es enviar todas aquellas alertas que cumplan con las condiciones que el usuario definió al momento de subscribirse o subscribir a un usuario dentro de la biblioteca o lista de SharePoint.
El tema es que como fue diseñado este Job de forma errada es que asume que todos los usuarios tiene correos validados e intenta el envío de la alerta indefinidamente, como se muestra en el siguiente log:
Beginning
attempt 1 to send mail to recipients
OWSTIMER.EXE
SharePoint
Foundation E-Mail Medium Attempting
to send mail to recipients
Error:
SmtpException while sending email:
System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server
response was: 5.7.1 Unable to relay
Beginning attempt 2 to send mail to recipients
OWSTIMER.EXE SharePoint Foundation E-Mail Medium Attempting to send mail to recipients
Error: SmtpException while sending email: System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.7.1 Unable to relay
Beginning attempt 3 to send mail to recipients
OWSTIMER.EXE SharePoint Foundation E-Mail Medium Attempting to send mail to recipients
Error: SmtpException while sending email: System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.7.1 Unable to relay
y así hasta que tenga éxito en enviarlo, pero nunca lo va poder enviar porque no existe Realy definido para la cuenta que intenta enviar, por temas de privacidad no comparto esta información.
Lo que provoca este problema es que el Job "Immediate Alerts" se queda congelado, ya no avanza mas y el resto de alertas las deja de enviar, solo envia las que estan antes de la cuenta que tiene problema. Que en el caso que me toco revisar era todas las cuentas de un domino en especial que no tenian un relay especificado para que pudieran irse o dieran salida de SharePoint.
Mientras tecnología se encargada de corregir este tema, lo que hice fue sacar un inventario de las alertas y luego eliminar todas las alertas de dicho dominio.
A continuación les dejo el script del inventario de alertas en powershell:
----GetAllusersAlerts.ps1----
param([string]$url, [string]$scope, [string]$filePath)
"Title;UserName;LoginName;AlertType;List;Frequency;DeliveryChannels;EventType;AlwaysNotify" | Out-File -FilePath $filePath
function listAlert($SPweb )
{
$alerts = $SPweb.Alerts
$alertscount = $alerts.count
for($i= 0; $i -lt $alertscount;$i++)
{
$alert = $alerts[$i]
$id = $alert.ID
write-host -f Green $alert.Title
"User Name - " + $alert.User.Name
"Title - " + $alert.Title
"Alert Type - " + $alert.AlertType
"Alert List - " + $alert.List
"Frequency - " + $alert.AlertFrequency
"Delivery Via - " + $alert.DeliveryChannels
"Change Type - " + $alert.EventType
"Alert User - " + $alert.User
"Always Notify- " + $alert.AlwaysNotify
Write-Host "=================================="
$alert.Title+";"+$alert.User.Name+";"+$alert.User+";"+$alert.AlertType+";"+$alert.List+";"+$alert.AlertFrequency+";"+$alert.DeliveryChannels+";"+$alert.EventType+";"+$alert.AlwaysNotify | Out-File -FilePath $filePath -Append
}
}
if($url)
{
if($scope -ne "web")
{
$SPwebApp = Get-SPWebApplication $Url
foreach ($SPsite in $SPwebApp.Sites)
{
foreach($SPweb in $SPsite.AllWebs)
{
listAlert $SPweb
$SPWeb.Dispose()
}
$SPsite.Dispose()
}
}
else
{
$SPweb = get-spweb $url
listAlert $SPweb
$SPWeb.Dispose()
}
}
else
{
write-host "Url es un parametro obligatorio"
}
write-host "End process.."
---end of file----
SharePoint4Fun!,
JMHO