|
Calcium Documentation - Controlling the Email Reminder Process
Because the Calcium script runs only in response to a user action,
it can't periodically and predictably check for and send event
reminders. So, Email Reminders are handled by a process that runs
separately from the Calcium script.
This is done by another script, called "SendReminders". It can be
run in two different fashions:
- As a daemon which runs forever, periodically checking for
and sending reminders
- As a program which checks once, sends reminders, and
exits.
If Calcium is running on any sort of Unix/Linux/FreeBSD/Mac OS X
system, you can start and stop the Reminder process in 'daemon' mode
using the Calcium interface. Follow the "Email Reminder Process" link
on the System Administration page. You'll see a menu that lets you
specify how often to check for reminders, and a button to start or stop
the process. Once you start it, the SendReminder process will run
"forever", sleeping most of the time, but waking up every N minutes to
see if any reminders need to be sent.
On Microsoft Windows platforms, controlling the SendReminder process
via the Calcium admin page is not currently supported. On Windows (or
any other platform), you can run the SendReminder script externally
from a command line. It can be run in either mode - you can have it
check for and send reminders once and exit, or run forever (or until
you stop it) as a daemon. To run it as a daemon, specify the number of
minutes to sleep between checks, using the -i flag ('i' stands for
'interval'):
c:\home\www\cgi-bin\CalciumDir> \perl\bin\perl.exe SendReminders -i 10
This will check for reminders every 10 minutes. To check just once,
run it without any arguments, e.g.:
c:\home\www\cgi-bin\CalciumDir> \perl\bin\perl.exe SendReminders
A good solution is to use Unix 'cron' or the Windows Scheduler to
run the SendReminder script at predetermined intervals, using the no
argument form. An example unix crontab entry might be something like:
0,10,20,30,40,50 * * * * /home/httpd/cgi-bin/CalciumDir/SendReminders
which would check every 10 minutes. Make sure you use the crontab of
the user the web server runs as, so you don't have file permission
problems.
For more information on running SendReminders on Microsoft Windows,
please see SendReminders via the
Windows Scheduler (recommended) or SendReminders as a Windows Service (rather
complicated.)
Note: the SendReminder script needs to know the path to your
Calcium installation. At the top, it has a line that looks something
like this:
BEGIN {$Defines::calendar_root = '.';
If you have trouble getting the script to run, you should try changing
the path inside the quotes to the full path to your Calcium
installation directory. For example:
BEGIN {$Defines::calendar_root = '/usr/local/CalciumDir';
or maybe:
BEGIN {$Defines::calendar_root = '/home/www/cgi-bin/CalciumDir';
or possibly something like:
BEGIN {$Defines::calendar_root = 'c:\www-root\cgi-bin\CalciumDir';
|