The newsletter and reminder scripts provide the following features:
The scripts requires that you use PHPMailer, is a PHP function for sending mail that's more full-featured than the one built into PHP. Download it, put it in html/inc, and set the USE_PHPMAILER, PHPMAILER_HOST, and PHPMAILER_MAILER variables in your project.inc file.
All of the tools let you send multipart HTML/text messages. We recommend that you use this feature - and HTML message can include your logo and/or institutional insignia, can include hyperlinks, and can look more attractive.
The general procedure for using each scripts is:
The newsletter and reminder scripts replace the following macros in your email bodies (both HTML and text): "; list_start(); list_item("<name/>", "User name"); list_item("<create_time/>", "When account was created (D M Y)"); list_item("<total_credit/>", "User's total credit"); list_item("<opt_out_url/>", "URL for opting out (this URL includes a salted version of the participant's account key, and so is different for every participant). "); list_item("<lapsed_interval/>", "The number of days since user's client contacted server (defined only for lapsed users, see below)." ); list_item("<user_id/>", "The user ID (use this to form URLs)" ); list_end(); echo "
The script html/ops/mass_email_script.php is for sending email newsletters. The script categorize participants as follows:
Test Project continues to do pioneering computational research in the field of Submandibular Morphology. In recent months we have discovered over 17 new varieties of Frombats.
Our records show that you created a Test Project account
on
To not receive future emails from Test Project,
>click here.
"
)."
");
list_item("failed_text", "Text message sent to failed users.
Example: ".html_text("
Dear
Test your email before sending it out to the world. As distributed, mass_email_script.php has the following variables defined near the top:
\$testing = true;Set it to false to actually send emails (rather than just print to stdout).
\$userid = 1;If this is nonzero, email will be sent to the given user ID; Otherwise it will be sent to all users.
To start, set \$userid to the ID of your own user record. Run the script by typing
php mass_email_script.phpIt will print (to stdout) the contents of all three email types (failed, lapsed, and current). Verify that the subject, HTML and text are correct.
Then set \$testing = false and run the script again. You'll get three emails; check them.
Then set \$testing = false and \$userid = 0, create an empty file called mass_email/log (see below), and run the script. You'll get voluminous output to stdout, but no emails will be sent. Control-C it quickly if you want. Make sure that each user is being sent the right type of email.
When you're sure that everything is correct, set \$testing = false, set mass_email/log to empty, and run the script. It will now send mass emails. Depending on the size of your user table, it may take hours or days to complete. You can control-C it and restart whenever you want; it automatically picks up where it left off (see below).
mass_email_script.php manages checkpoint/restart when dealing with large numbers of participants. Mails are sent in order of increasing user ID. The file mass_email/log has a list of IDs that have been processed. On startup, the script reads this file, finds the last entry, and starts from there.
If you are starting a mass email from the beginning, empty the file mass_email/log; i.e.
truncate mass_email/log
The script html/ops/remind.php is for sending reminder emails. The script categorizes users as follows.
To use the script, create the following files in html/ops/reminder_email/: "; list_start(); list_item("failed_html", "HTML message sent to failed users"); list_item("failed_text", "Text message sent to failed users"); list_item("failed_subject", "Subject line sent to failed users"); list_item("lapsed_html", "HTML message sent to lapsed users"); list_item("lapsed_text", "Text message sent to lapsed users"); list_item("lapsed_subject", "Subject line sent to lapsed users"); list_end(); echo "
remind.php can be run as often as you like. We recommend running it every hours, specifying it as a task in config.xml. When it sends email to a user, it stores the time in their database record, and won't send them another email for at least 30 days. For this reason, it has no checkpoint/restart mechanism.
The procedure for testing your reminder email is similar to that for email newsletters (see above).
The web page ffemail_form.php lets users send emails to their friends. To use this feature, you must create the following files in html/ops/ffmail/: "; list_start(); list_item("subject", "The subject line used for friend-to-friend emails"); list_item("html", "HTML template for friend-to-friend emails"); list_item("text", "Text template for friend-to-friend emails"); list_end(); echo " Samples are supplied for each of these. The following macros are substituted in the message bodies: "; list_start(); list_item("<fromname/>", "The name of the sender"); list_item("<toname/>", "The name of the recipient"); list_item("<comment/>", "The comment supplied by the sender"); list_end(); page_tail(); ?>