Extension:Email notification

Email notification on changes of watch-listed pages and/or user_talk pages

 * This is main page of the E-Mail Notification patch (enotif) which discloses a reasonable scheme allowing for page change notifications via e-mail.


 * Available are patches for
 * MediaWiki CVS release branch REL1_3_5: enotif v1.1
 * MediaWiki CVS HEAD (1.4): enotif v1.2 (minor improvements over v1.1)


 * Maintainer of this feature are Tom Gries and Markus Arndt, Germany. August-October 2004.

How it works
The watching user X gets a short E-Mail if he/she has stored an email address in the preferences


 * when someone else changes a page listed in user X's watch list (watch-listed page)
 * when someone else changes the user_talk page of user x

Users with or without an email address in preferences can enjoy a side-effect of enotif:


 * together with enotif the marker  updated (since my last visit) is introduced indicating new contents on watch-listed pages since one's last visit. The marker can be seen on the watchlist page and on the recent-changes page close to the bold-titled page names of pages being watched. Be reminded: own changes do never trigger notification mails or markers, so you are really informed about changes of somebody else.

What you can expect - feature overview

 * The first version of E-Notif is mainly suited for small scale MediaWiki implementations, as personalised e-mails are sent out (name, pages changes expressed in local time) for every recipient. The program flow will be changed in a next version, so that bulk notification mails could be sent, depending on parameters.
 * However, the notification on (only) user_talk page changes could be enabled for even the largest WikiPedia, because the number of these page changes is surprisingly low and because only one mail needs to be sent - to the page owner. About only 800 alien user-talk page changes are committed per day (August 2004), which would result in the same number of enotifs.
 * All features are configurable by WikiAdmins in the DefaultSettings.php resp. LocalSettings.php - admins can enable or disable the sending of notifications for a) general pages of all name spaces and for b) user_talk pages separately.
 * The notification message texts are not hard-coded in the source but pages in the MediaWiki:namespace making use of named variables such as $PAGEEDITORUSERNAME and $PAGEEDITTIMESTAMPUTC (see real example below).
 * Your own changes never trigger a notification mail sent to yourself.
 * Minor edits will or will not trigger notification e-mails sent out depending on just another admin setting.
 * Changes on user_talk pages always trigger a notification to be sent (if not yet done) - no matter, if the page editor marked it as minor edit or not.
 * Global program flags in DefaultSettings.php set the defaults. As a sysop, you can fine-tune the email notification program according to your needs by using other settings in your LocalSettings.php (which then overwrite the defaults):
 * Only one mail is sent on the first page change. Further mails are suppressed until you re-visit the changed page or until you reset all notification flags by clicking once onto a new button in your watchlist page.
 * On the watchlist page, a new marker  updated (since my last visit) indicates such pages for which a notification mail was sent, meaning that the page has new contents since your last visit.
 * The marker is also shown on your recent changes page for these pages you are watching (already marked bold) and which do have new contents since your last visit.
 * If you wish so, you can provisionally add not-yet existing page names to your watch list and you will receive an email notification as someone creates a page with that name. Again: you will see the marker flown there until you really visit the (in this case: new) pages with new contents.


 * Sexy for debuggers: two different (single) beeps on the server signal the sending of notification mails for pages and user_talk pages (default: disabled, see Email notification list of changes).

Named variables for sysop use in email subject and body template
Sysops can use the following named variables to compose the email notification message:

The variables ending with "_QP" are needed for composing correct mail headers for usernames with non-ASCII characters.

$WATCHINGUSERNAME $WATCHINGUSERNAME_QP (QP = "quoted-printable", only for use in mail headers) $WATCHINGUSEREMAILADDR $PAGETITLE $PAGETITLE_QP (QP = "quoted-printable", only for use in mail headers) $PAGEEDITORNAMEANDEMAILADDR $PAGEEDITORNAMEANDEMAILADDR_QP (QP = "quoted-printable", only for use in mail headers) $PAGEEDITOR $PAGEEDITOR_QP (QP = "quoted-printable", only for use in mail headers) $PAGEEDITDATE (expresses the page edit date/time in the watching user's local time) $PAGEEDITDATEUTC $PAGEMINOREDIT $PAGESUMMARY $WIKIADMINEMAILADDR

Program constants defined in DefaultSettings.php

 * 1) Patch for email notification on page changes T.Gries/M.Arndt 11.09.2004
 * 2) These are the defaults settings

$wgEmailNotificationLevel                     = 3;     # 0: disabled # 1: for user_talk pages only # This appears to be a possible start value even for large scale wikipedias, as even the English Wikipedia has only about 800 alien user-talk changes per day, according to Brion. # 2: for watch-listed pages only # 3: for all pages (watch-listed and user-talk pages) # suggested for small scale wikis $wgEmailNotificationForMinorEdits             = false; # false: "minor edits" on pages do not trigger notification mails. # Attention: every change on a user_talk page triggers a notification mail (if the user is not yet notified)

'''Attention, these features are disabled by default. However, be careful with the parameters for the two system calls.''' $wgEmailNotificationSystembeepForWatchlistPages = ''; # empty string = disabled = default $wgEmailNotificationSystembeepForUserTalkPages = ''; # empty string = disabled = default Again the security advice: be careful with these two system call parameters.
 * 1) The following strings are passed as parameters to two system calls.
 * 2) On our server, they call the beep 1.2.2 program with different frequencies f [Hz] and length l [msec]
 * 3) Beep 1.2.2 can be found on http://freshmeat.net/projects/beep/
 * 1) $wgEmailNotificationSystembeepForWatchlistPages = '/usr/bin/beep -f 4000 -l 20 &'; # a system call with exactly this string as parameter is executed when such a mail is sent
 * 2) $wgEmailNotificationSystembeepForUserTalkPages  = '/usr/bin/beep -f 2000 -l 20 &'; # ditto., but for UserTalk page changes

Notification mail text template (delivered within the patch, module Languages.php)
email notification messagetext

Tom Gries/Markus Arndt Berlin/Munich October 2004