Un système de fréquence de réception des notifications envoyées par mail est mis en place.
Tous les utilisateurs qui reçoivent leurs notifications par mail peuvent désormais choisir une fréquence de réception de ces notifications.
Lorsqu'une notification (par mail) est générée pour un utilisateur, selon sa fréquence (quotidienne par exemple) de réception définie, cette notification n'est pas tout de suite envoyée et est stockée sur le serveur.
Chaque nuit, par défaut à 00h30, un batch vérifie pour chaque utilisateur s'il existe des notifications stockées sur le serveur et si ces dernières doivent être restituées à l'utilisateur. Cette restitution, pour chaque utilisateur, se fait via l'envoi d'un seul mail qui contient une synthèse de l'ensemble des notifications (celles stockées sur le serveur) le concernant. Pour chaque synthèse envoyée, les notifications associées sont supprimées, et ce, que le serveur de mail (SMTP) ait envoyé la synthèse avec succès ou non.
La synthèse de notification, pour un utilisateur, est structurée de manière à présenter pour chaque ressource (publication, billet d'un blog, ...) l'ensemble des notifications le concernant. Cette synthèse ne correspond donc pas à une agrégation des notifications entre elles.
L'utilisateur peut choisir sa fréquence de réception à partir de l'écran de paramétrage actuel de l'application "Mes notifications" située dans l'espace personnel.
Les fréquences possibles proposées à l'utilisateur sont les suivantes :
- Par défaut : la fréquence est celle définie par défaut au niveau du serveur (paramètre DEFAULT_DELAYED_NOTIFICATION_FREQUENCY)
- Instantanée : l'utilisateur reçoit ses notifications par mail de la même manière qu'aujourd'hui (elles ne sont donc pas stockées sur le serveur)
- Quotidienne : l'utilisateur reçoit un mail synthétisant l'ensemble des notifications qui lui étaient destinées par mail sur la période d'un jour
- Hebdomadaire : l'utilisateur reçoit un mail synthétisant l'ensemble des notifications qui lui étaient destinées par mail sur la période d'une semaine
- Mensuelle : l'utilisateur reçoit un mail synthétisant l'ensemble des notifications qui lui étaient destinées par mail sur la période d'un mois
La liste des fréquences proposées à un utilisateur peut être restreinte selon la valeur du paramètre DELAYED_NOTIFICATION_FREQUENCY_CHOICE_LIST.
Chaque fois que l'utilisateur change de fréquence, une synthèse lui est adressée directement s'il existe des notifications (par mail) stockées sur le serveur qui le concerne.
Seules les notifications générées par les applications suivantes sont compatibles avec ce système de fréquence de réception :
- Blog
- GED
- Classifieds
Les notifications générées par le système centralisé de commentaires sont elles aussi compatibles (cela concerne les applications ci-avant listées).
Au niveau des applications Blog et GED, les notifications envoyées au valideurs de publication ne sont pas prises en compte par ce système de fréquence de réception des notifications. Elles sont donc envoyées, comme aujourd'hui, instantanément aux valideurs.
Au niveau du paramétrage serveur, trois nouveaux paramètres ont été ajoutés dans le fichier /properties/com/stratelia/silverpeas/notificationManager/settings/notificationManagerSettings.properties :
- DEFAULT_DELAYED_NOTIFICATION_FREQUENCY : permet de définir globalement la fréquence de réception des synthèses par les utilisateurs. La fréquence par défaut définie est "Instantanée"
- DELAYED_NOTIFICATION_FREQUENCY_CHOICE_LIST : permet de définir la liste des fréquences proposées à un utilisateur. Par défaut, toutes les fréquences sont proposées
- cronDelayedNotificationSending : permet de définir l'heure d'exécution du batch d'envoi des synthèses de notifications aux utilisateurs. La valeur renseignée pour ce paramètre doit définir que le batch est exécuté tous les jours et une seule fois. L'heure d'exécution journalière définie par défaut est 00h30
D'un point de vue technique, le batch envoie une synthèse à un utilisateur dans les cas suivants :
- soit l'utilisateur a choisi une fréquence quotidienne, soit il est sur la fréquence par défaut (celle du serveur) qui est quotidienne
- la date d'exécution du batch est celle d'un lundi et soit l'utilisateur a choisi une fréquence hebdomadaire, soit il est sur la fréquence par défaut qui est hebdomadaire
- la date d'exécution du batch est celle du premier jour d'un mois et soit l'utilisateur a choisi une fréquence mensuelle, soit il est sur la fréquence par défaut qui est mensuelle