PmWiki: MailPosts

The mailposts.php script allows a site administrator to configure Pm Wiki to send email messages whenever pages are changed on the wiki site. Mail Posts can be configured so that multiple page changes over a short period of time are combined into a single email message (to avoid flooding a mailbox).

The Mail Posts feature is especially useful for sites that have infrequent updates, eliminating the need to frequently check Recent Changes pages just to see if anything has changed.

Full configuration details are available in scripts/mailposts.php, but here's the brief synopsis of what needs to go in config.php or a per-group customization script for Mail Posts:

 $EnableMailPosts=1;                   # to enable mailposts
 $MailPostsTo="[email protected]";  # where to send mail 
 $MailPostsDelay=1800;                 # wait 30+ min after initial post
 $MailPostsSquelch=7200;               # require 2+ hours between mails

Note that $MailPostsTo may be a comma-separated list of addresses if multiple recipients are desired.

Since an initial post is often followed by several posts containing minor edits, it's useful to wait a short period of time before sending an email. $MailPostsDelay is the minimum amount of time that must elapse from an initial post before a message is sent. Any additional posts occuring during the delay period are included in the message when it is sent. The message is sent on the first execution of pmwiki.php after the delay period has expired (which for inactive sites could be much longer than the delay period). A delay of zero means to immediately send a message whenever an update is received.

$MailPostsSquelch specifies the minimum amount of time that must elapse before sending another notification message. This is useful to prevent large number of rapid-succession messages if $MailPostsDelay is set to a small value.

The defaults for $MailPostsDelay and $MailPostsSquelch are 0 and 7200. With these values, an email is sent as soon as a page is changed, and subsequent changes are "held" for at least two hours before being sent in another message.

The variables used to control Mail Posts are given below, and also described in the mailposts.php script.

Note for Windows installations

Sites running PHP under Windows may not have PHP's mail [] function configured correctly. Such sites may need to add a line like


to config.php, where is the name of your host's preferred outgoing mail server.

Mail Posts Variables

<< (Other Variables)? | Variables | >>

Tells stdconfig.php to enable the Mail Posts script.
        $EnableMailPosts = 1;          # enable mailposts
        $EnableMailPosts = 0;          # disable mailposts

A comma separated list of email recipients.
        $MailPostsTo = '[email protected], [email protected]';

Return email address to be used in the sent email.
        $MailPostsFrom = '[email protected]';
        $MailPostsFrom = 'Wiki server <[email protected]>';

The length of time (seconds) to wait before sending mail after the first post. Defaults to zero - posts are sent as soon as the $MailPostsSquelch period has expired.
        $MailPostsDelay = 360;    # send mail 6+ min after first post

The minimum length of time (seconds) that must elapse between sending mail messages. Useful when $MailPostsDelay is set to a small value to keep the number of mail notification messages down. Defaults to 7200 (two hours).
        $MailPostsDelay = 43200;  # wait 12+ hours between mailings

The text to be sent for each changed item in the post. The string "$PostTime" is substituted with the time of the post (controlled by $MailPostsTimeFmt below).
        # default
        $MailPostsItemFmt = ' * $PageName . . . $PostTime by $Author';
        # include the page's URL in the message
        $MailPostsItemFmt =
          " * \$PageName . . . \$PostTime by \$Author\n     \$PageUrl";

The format for dates/times in $PostTime above. Defaults to the value of $TimeFmt.
        $MailPostsTimeFmt = 'm-H:%M';  # 2004-03-20 17:44

The body of the message to be sent. The string "$MailPostsList" is replaced with the list of posts (as formatted by $MailPostsItemFmt above).

The subject line of the mail to be sent.

String of extra mail headers to be passed to the mail() function.

Name of the function to be called to send the mail. Defaults to using PHP's built-in mail() [] function, but some systems may not be configured correctly. Can be set to 'MailPostsSendmail' to explicitly call /usr/lib/sendmail.
        # call /usr/lib/sendmail directly instead of using mail()
        $MailPostsFunction = 'MailPostsSendmail';

The scratch file where Mail Posts keeps track of recent posting information. Defaults to "$WikiDir/.mailposts". Note that this file must generally be writable by the webserver process.

<< Internationalizations | Documentation Index | Change Pm Wiki URL >>
Retrieved from
Page last modified on March 20, 2004, at 07:28 PM