Notification par courriel

administrateurs (basique)

Depuis 2007-07-17, la page de configuration des courriels est SiteAdmin.NotifyList. Les versions de PmWiki publiées avant cette date utilisaient Site.NotifyList. (C'est une page dans votre site wiki et se modifie comme les autres pages du wiki.)

Le script notify.php permet à un administrateur de site d'envoyer des messages e-mail lorsque des changements se produisent sur les pages d'un site wiki. Les notifications par e-mail peuvent être configurées de manière à ce que de multiples changements de page sur une courte période soient regroupés en un unique message e-mail (pour éviter de saturer les boîtes à mail).

Cette fonctionnalité est utile pour les sites et les pages qui sont mis à jour peu fréquemment, ceci évite d'avoir à consulter fréquemment les pages de "changements récents" (ModifsDuGroupe ToutesLesModifs RecentChanges AllRecentChanges) juste pour voir si quelque chose a changé.

Pour faire fonctionner les notifications, le script notify.php doit être activé dans la Configuration locale. Habituellement, cela se résume simplement à placer dans local/config.php la ligne suivante :

    $EnableNotify = 1;

Une fois activé, le système de notification se configure depuis la page SiteAdmin.NotifyList. (C'est une page dans votre site wiki et se modifie comme les autres pages du wiki.) Cette page contient des entrées de la forme suivante:

    notify=alice@example.com

Ceci signifie que l'information des changements de page doit être envoyée périodiquement par e-mail à alice@example.com. La page SiteAdmin.NotifyList peut contenir plusieurs lignes "notify=" causant l'envoi des notifications à de multiples adresses.

Un certain nombre d'options existent pour limiter les pages prises en compte lors d'une notification. Les paramètres group= et name= peuvent être utilisés pour restreindre les notifications à certains groupes ou certaines pages.

    # Envoie les notifications du groupe Main à  alice@example.com
    notify=alice@example.com group=Main

    # Avertit bob@example.com de tous les changements de la page Home
    notify=bob@example.com name=Main.HomePage

    # Avertit charles@example.com de tous les changements de page
    # sauf celles de groupe Main
    notify=charles@example.com group=-Main

Pour maintenir des listes arbitraires de pages, c'est à dire des "listes de surveillance" ("watchlists"), il est généralement plus facile de créer un trail des pages à surveiller. L'entrée suivante dans la page SiteAdmin.NotifyList provoquera l'envoi d'un email contenant tous les changements des pages listées dans le trail situé sur la page Profiles.ALice:

    # Informe Alice des changements des pages listées dans Profiles.Alice
    notify=alice@example.com trail=Profiles.Alice 

Notez qu'une fois cette entrée ajoutée dans SiteAdmin.NotifyList, Alice peut facilement changer sa liste de surveillance en éditant la page Profiles.Alice sans avoir besoin d'éditer la page SiteAdmin.NotifyList. Et plus particulièrement cela signifie qu'un administrateur peut restreindre l'édition de SiteAdmin.NotifyList, et néanmoins autorise des individus à maintenir des listes de surveillance personnalisées dans d'autres pages.

C'est probablement le bon endroit pour signaler que l'accés en éditon à la page SiteAdmin.NotifyList devrait être vérouillée, autrement des personnes mal intentionnées pourraient utiliser la capacité des notifications pour saturer les boîtes de courrier électronique d'autres personnes. Par défaut, SiteAdmin.NotifyList est bloqué en édition excepté pour l'administrateur (admin) ( aussi est-ce le cas pour la plus part des pages du groupe Site). Il peut être utile également de mettre en place en mot de passe en lecture afin d'empêcher les spammeurs de récolter les adresses e-mail.

Contrôler la fréquence des notifications

Pour prévenir la saturation des boîtes à mail des destinataires, le scripte de notification utilise un paramètre "squelch" indiquant la durée minimum d'intervalle entre deux envois d'e-mail à une adresse donnée. La valeur par défaut du paramètre "squelch" est 10800 (trois heures), ce qui signifie qu'une fois qu'un message est envoyé à l'adresse d'un destinataire, aucun autre message ne lui sera envoyé avant au moins trois heures. Toutes les éditions qui se produisent durant l'intervalle de temps spécifié par "squelch", sont mises en attente pour le prochain message de notification.

L'administrateur peut changer l'intervalle "squelch" par défaut via le paramètre $NotifySquelch

    # active les notifications
    $EnableNotify = 1;
    $NotifySquelch = 86400;  # attendre au moins un jour entre notifications

De plus, chaque adresse peut individuellement spécifier un paramètre squelch personnalisé dans la page SiteAdmin.NotifyList:

    # Alice reçoit au plus un mail par jour
    notify=alice@example.com squelch=86400

    # Bob peut être averti des changements toutes les heures
    notify=bob@example.com trail=Profiles.Bob squelch=3600

    # Charles utilise l'intervalle squelch du site par défaut
    notify=charles@example.com 

Parcequ'une page reçoit successivement souvent plusieurs modifications rapides (par ex, une long envoi suivi de plusieurs ré-éditions mineures), un administrateur de site peut également paramètrer la valeur de $NotifyDelay qui spécifie le temps d'attente entre l'édition initiale et l'envoi de la notification:

    # active les notifications
    $EnableNotify = 1;
    $NotifySquelch = 86400; # attendre au moins un jour entre notifications
    $NotifyDelay = 300;     # attendre 5 minutes après l'édition initiale

Notez que les valeurs de $NotifySquelch et $NotifyDelay indique des minimums. Les notifications sont envoyées à la première exécution de PmWiki après que la période de délais soit expirée. Pour les sites inactifs, cette période peut être beaucoup plus longue que la durée du délais minimum. Ceci n'est pas vraiment un problème car les notifications opportunes sont moins importantes sur des sites relativement inactifs. (Les sites à forte activité reçoivent généralement les notifications au bon moment).

Note pour les installations Windows.

Les sites dont PHP fonctionne sous Windows peuvent ne pas avoir leur fontion PHP mail correctement configurée. De tels sites devront ajouter une ligne comme :

    ini_set('SMTP','smtp.server.com');

à leur fichier config.php, où smtp.server.com est le nom de votre serveur de courrier sortant préféré de votre hébergement.

Variables pour les notifications

<< | Variables | >>

$EnableNotify
indique à stdconfig.php d'activer le scripte de notification.
     $EnableNotify = 1;     # active les notifications
     $EnableNotify = 0;     # désactive les notifications
$NotifyFrom
Adresse e-mail de retour utilisée dans le message envoyé.
     $NotifyFrom = 'wiki@example.com';
     $NotifyFrom = 'Wiki server <wiki@example.com>';
$NotifyDelay
La durée (en secondes) d'attente avant l'envoi après le premier changement détecté. Par défaut à 0, les modifications du site sont signalées dès que la période du délais "squelch" est expirée.
     $NotifyDelay = 300;    # send mail 5+ min after first post
$NotifySquelch
La durée minimum (en secondes) entre l'envoi de chaque message. Utile lorsque $NotifyDelay est configuré avec une valeur faible pour conserver un nombre bas de messages de notifications. Par défaut à 10800 (trois heures). Chaque destinataire peut écrasée cette valeur dans la page SiteAdmin.NotifyList.
     $NotifySquelch = 43200; # attendre 12+ heures entre chaque message
$NotifyItemFmt
Le text à envoyer pour chaque modification du site. La chaîne "$PostTime" est remplacée par la date du changement (contrôlé par $NotifyTimeFmt ci-dessous).
     # Par défaut
     $NotifyItemFmt = ' * $FullName ... $PostTime by $Author';
     # inclure l'URL de la page dans le messsage
     $NotifyItemFmt = " * \$FullName ... \$PostTime by \$Author\n \$PageUrl";
$NotifyTimeFmt
Le format pour les dates/heures de $PostTime ci-dessus. Par défaut est égal à la valeur de $TimeFmt.
     $NotifyTimeFmt = 'm-H:%M';  # 2004-03-20 17:44
$NotifyBodyFmt
Le corps du message à envoyer. La chaîne "$NotifyItems" est remplacé avec la liste des modifications (mises au format par $NotifyItemFmt ci-dessus).
$NotifySubjectFmt
La ligne de sujet du mail à envoyer.
$NotifyHeaders
Chaîne pour des en-têtes (hearders) de mail supplémentaires à passer à la fonction mail().
$NotifyParameters
Chaîne de paramètres additionnels à passer à la fonction PHP mail() [1].
$NotifyFile
Le fichier tampon où est conservée la trace des récentes modifications. Par défaut à "$WikiDir/.notifylist". Notez que généralement ce fichier doit être accessible en écriture par le processus du serveur web.
$NotifyListPageFmt
Le nom de la page contenant les lignes notify= utilisées par notify.php. Par défaut à {$SiteGroup}.NotifyList.
$NotifyList
Un tableau de paramètres notify= qui peut être spécifié à partir d'un fichier local de configuration personnelle (utilisé en plus des entrées de SiteAdmin.NotifyList).
     # Avertir alice@example.com
     $NotifyList[] = 'notify=alice@example.com'

<< Internationalisation | IndexDocAdmin | Changer les URL PmWiki >>


Traduction de PmWiki.Notify Page originale sur PmWikiFr.Notify - Référencé par
Dernières modifications:
PmWikiFr.Notify: 13/03/2009
PmWiki.Notify: 17/01/2010