Note: This is for PHPlist version 2.10.12
config.php: necessary settings
Create an administrator who is not "super" admin. In config.php, add the name of that user to commandline_users
Define tmpdir to /server/path/to/lists/tmp
Leave MANUALLY_PROCESS_RSS,1 and MANUALLY_PROCESS-QUEUE,1
Define ENABLE_RSS,1
Also in config.php, you may need to set values for MAILQUEUE_BATCH_SIZE and MAILQUEUE_BATCH_PERIOD for batch processing and/or MAILQUEUE_THROTTLE for throttle processing, which you'll have to read about elsewhere (http://docs.phplist.com/PhpListConfigSendRate). Note that the batch_period appears to specify the time between batches, and repeated processing of the queue seems typically to be required.
cronjobs: automate it
[get rss]
php /server/path/to/lists/admin/index.php page=getrss config=/server/path/to/lists/config/config.php login=adminuser password=password
or
wget -q -O - 'http://www.domain.org/lists/admin/index.php?page=getrss&login=adminuser&password=password'
or see http://docs.phplist.com/CronJobExamples
[
if getrss is run more frequently than every 3 hours (to help order items in the message, where they are ordered by when they were added by getrss, not by their original publication date), then reduce the cache time:
In admin/onyxrss/onyx-rss.php, change
$this->conf['cache_time'] = 180;
to
$this->conf['cache_time'] = 1;
]
[process queue]
php -q /server/path/to/lists/admin/index.php page=processqueue config=/server/path/to/lists/config/config.php login=adminuser password=password
or
wget -q -O - 'http://www.domain.org/lists/admin/index.php?page=processqueue&login=adminuser&password=password'
or see http://docs.phplist.com/CronJobExamples
RSS message: create the e-mail
Add RSS feed(s) to list.
Create RSS message template: include "[RSS]" in body.
In Format tab, select HTML.
In Scheduling tab, select frequency (which will be matched to user RSS frequency; this must be done separately for each frequency). Set the embargo time to one before the cron jobs to get rss and process queue.
In Lists tab, select list(s) for receipt and send.
It should all be automatic now, with cronjobs getting the RSS and processing the queue. To ensure that a message goes out regularly (if there is new material in the RSS feed), set the minimum items to 1 on the administrative configuration page.
SMTP (better for HTML): more settings
Define PHPMAILER,1 and PHPMAILERHOST,'localhost' (in config.php)
Leave $phpmailer_smtpuser and $phpmailer_smtppassword commented (and set to '' for security) (in config.php)
Miscellaneous fixes/adjustments: further tweaks, all optional
In database:
• Allow NULL in to, replyto, from, and subject columns (phplist_message table).
• Set default htmlemail to 1 and rssfrequency to daily (phplist_user_user table).
• SQL query to set rssfrequency for all existing users: UPDATE 'phplist_user_user' SET 'rssfrequency' = 'daily' [This is simply to allow a single message (i.e., daily) and to ensure that every subscriber is set to receive it.]
In admin/getrss.php:
Set SQLqueries to 255 characters (0-254) [to better avoid duplicated items]: Change
Sql_Query(sprintf('select * from %s where title = "%s" and link = "%s"', $tables["rssitem"], addslashes($item["title"]), addslashes($item["link"])));
to
Sql_Query(sprintf('select * from %s where title = "%s" and link = "%s"', $tables["rssitem"], substr(addslashes($item["title"]),0,254), substr(addslashes($item["link"]),0,254)));
In rssitem table:
Set link and title fields to 255 chars (corresponding to above change).
