Customize alerts

SP2013


Bonjour à tous,

Aujourd’hui je vais vous parler d’une petite subtilité de développement à laquelle j’ai fait face récemment.

Devant modifier le message des alertes standards SharePoint et devant utiliser le «code behind pour effectuer mes test, je me suis retrouvé a implémenter une classe héritant du IAlertNotifyHandler.

Petite parenthèse, si vous souhaitez faire pareil, je vous conseille cet article expliquant très clairement le fonctionnement (et j’en profite pour remercier l’auteur au passage).

http://blogs.msdn.com/b/sharepointdeveloperdocs/archive/2007/12/14/how-to-customizing-alert-emails-using-ialertnotificationhandler.aspx

Apres une première tentative, je me suis rendu compte que le mail reçu ne ressemblait pas au mail d’alerte standard.

En effet, je n’envoyais pas tous les « header » mais utilisais juste le « To ». (Encore un remerciement au passage pour l’auteur de cet article http://blogs.msdn.com/b/malag/archive/2008/07/23/alert-emails-not-recognized-by-outlook-as-alert-emails.aspx )

Pensant être arrive au bout de mes peines, je me suis rendu compte qu’une chose était également différente, le nom de l’envoyeur !

Si on utilise simplement « SPUtility.SendEmail(web, ahp.headers, ahp.body);” , la personne recevant le mail verra comme “sender” l’adresse mail configure dans le outgoing mail configuration de votre serveur SharePoint, ce qui n’est pas ce qui est envoyé par défaut par les alertes !

 

Pour avoir exactement le même rendu dans votre mail, il faut donc modifier le header « From » de la manière suivante.

ahp.headers[« From »] = web.Title+ « < » + ahp.headers[« From »] + « > »;

 

Pour finir, 2 petites choses:

 

1) Si vous voulez tester vos alertes, il faut lancer le job “Immediate Alerts” correspondant à votre application via la central d’administration : « central administration -> monitoring -> review job definition -> Immediate alerts (the one targeting your web application) -> run now ». Ce job est utilisé pour les 3 types d’alertes (Immediate, Daily et Weekly)

2) Pour tester vos alertes Daily et Weekly, vous pouvez facilement modifier la date d’envoi via la commande PowerShell suivante

 

Add-Pssnapin « Microsoft.SharePoint.PowerShell » -ErrorAction SilentlyContinue

$web = Get-SPWeb « yourSiteUrl »

$web.Alerts | select Title,ID,AlertFrequency,User   # Cette commande va vous afficher l’ensemble des alertes avec les ID (nécessaire pour la commande suivante)

$alert = $web.Alerts | where {$_.ID -eq « PASTE GUID HERE »}

$date=Get-Date

$alert.AlertTime =$date;

$alert.Update();

 

En espérant que ça aide !

 

Christopher

Cet article, publié dans SharePoint 2010, SharePoint 2013, est tagué , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s