Installation instructions can be found in install.txt This is an overview of capabilities for the program. It's pretty small, so I'm not going to spend a lot of time formatting it. The template files (page.open.php and page.close.php) - These are 2 template files, open going before and close going after the responder's output. Use a php include from these files to include your pages where-ever they should go. This'll let you integrate the responder into practically any design. ** A new feature ** Unsubcribe message: To comply with Can SPAM and other legal measures, it's important to have an unsubscribe message for any subscription-based system that sends out emails. Originally I had these sent out automatically, but then I decided to replace it with a tag. Put: %unsub_msg% At the end of any message that you want to include an unsubscribe link. Complete message tag list: %unsub_msg% - The unsubscribe message %SiteURL% - The URL of your site in $siteURL %RespDir% - The directory in $ResponderDirectory %subr_emailaddy% - Subscriber's email address %subr_firstname% - Subscriber's first name %subr_lastname% - Subscriber's last name %resp_ownername% - Responder's owner's name %resp_owneremail% - Responder's owner's email %resp_replyto% - Responder's reply-to email %resp_name% - Name of the responder %resp_desc% - Responder's description %msg_subject% - The message subject line %Subr_JoinedDay% - The day that the subscriber joined %Subr_JoinedMonth% - The numerical month that the subscriber joined %Subr_JoinedMonthNum% - The month that the subscriber joined %Subr_JoinedYear% - The year that the subscriber joined %Subr_LastActiveDay% - Day of last activity for the user (last message sent, etc) %Subr_LastActiveMonth% - Month of last activity for the user %Subr_LastActiveMonthNum% - Numerical month of last activity for the user %Subr_LastActiveYear% - Year of last activity for the user Tags are parsed from the message subject line and both the HTML and the Text message versions. Example: ---------------------------------------------- Hi %subr_firstname% Last %Subr_LastActiveMonth% you got the last part of our e-course %resp_name% ... I hope you enjoyed it. Please visit us again. %SiteURL% Sincerely, %resp_ownername% %resp_owneremail% ------------------------------------------------------- List.php - Is a responders list. Clicking "join" will take people to a subscription form for that responder. This means that you can refer people to list.php if you want to provide them with a list of responders that you have. At the beginning of list.php, around line 35, you'll see an anti-spam variable. This is a little way to make it more difficult for spammers to harvest your address from the listing page. Useful, but if you have particularly impatient (or unintelligent) visitors then they may forget to remove the antispam string and have problems sending you email. You can simply set it to a blank string if you want to disable it. Admin.php - Admin.php is the admin control panel. Just: http://www.yourdomain.com/dir/admin.php Will load the admin control panel. Once logged in you'll have several different options. "Edit list" takes you to the responder list so that you can edit, add and erase responders. "Code It!" gives you a simple subscription form that you can copy and paste into your page where-ever you want it. The email address search uses a MySQL like statement to scan the database for addresses similiar to your search phrase. Don't go overboard on this, I don't think it supports soundex or anything other than a simple in-string match. Still, it's pretty convenient if you know that "john@doe.org" has subscribed and you need to edit his options (like if he sends you an email asking for you to change his HTML settings or wants a re-send) Under the users list you'll see the list, have the ability to edit or delete each user or have the ability to add a new user. This user page should split itself up into a certain number of entries per page in order to make things more managable. Line 252 of admin.php (or thereabouts) has a $SubsPerPage variable that can set this number for you. At the top of the page you'll see an "Add a list" ... this is a bit confusing. It gives you the ability to add a comma-spliced list into your user database. Nifty for bulk imports. You can copy-paste the file or use the file input to upload the file from your harddrive. Responders.php - The edit users option takes you back to admin.php to edit users. "Code it!" gives you another chance to get a subscriber form. If you'd like to add a new responder, click "new" ... pretty simple, eh? If you want to add a new message then click "edit", scroll down and click "new" at the bottom. Keep in mind that all of the messages will appear on this page (atleast for this version) so if you've got afew hundred messages then it might take a while to download the list. To edit a message just click edit. The "Time to run" is the amount of time after the initial join. Persistent messages, ie: messages that are sent out every X number of days, aren't supported. I might add this ability later but many times that's better suited to a standard newsletter package or one of a hundred other generic autoresponders. I created this program specifically for email courses and sales announcements in mind. Ie: Pre-program the system to send out a discount announcement 1 month after they join, and so on. This can be especially powerful in conjunction with a standard newsletter. A completely-automated system of marketing is now at your disposal. If you absolutely must have something persistent then I suggest doing a weekly schedule and just setting it up as 12 or 16 messages... then using the occasional schedule breaker to get their attention. It may take 30 or more messages to get a good campaign, but the results will be well worth it. People tend to get used to, and take for granted, messages that come on a regular schedule. In the next version I will probably add a file load option in the message body. For now, however, you'll have to copy and paste. The message body supports quite a few HTML tags, but it won't support all of them. Tables and more complex formatting can be a bit tricky. You can disable the tag filtering if you want to edit the MakeSemiSafe function under evilness-filter.php. Only the HTML body and the responder descriptions are processed by the MakeSemiSafe function so altering it won't have much effect on anything else within the script. You can also add tags under the allowed tags variable at the top of the function. You may also want to put a small privacy statement in the responder description if you feel that it's appropriate. Remote subscriptions - Since I designed this to be email-course friendly, I figured someone out there might want to use this to handle subscriptions advertised by others. Ie: Design an email course for your affiliates to give away, but let them handle the form capture from their end to build both of your subscriber bases. For this reason the subscribe routine has a silent subscription feature that will disable all normal output, including the template files. It won't, however, disable the confirmation message sent to their email address. Trust me, this is a good thing. It eliminates bounces and spam accusations. In order to set this up you'll need to know the subscription request variables. e = The email address r = The responder ID a = "sendconfirm" h = 1 for HTML email. 0 for text. s = 1 for silent sub, 0 for normal. So lets say you want to set this up from yourdomain.com under /course: http://www.yourdomain.com/course/subhandler.php?e=$email&r=$resp&a=sendconfirm&h=$html&s=1 Then simply set up your PHP variables: $email, $resp and $html. At that point, all you have to do is call that link somehow. You can use a refresh or redirect, or img load. Personally, I perfer the redirect... it's more seamless. Img load: Where blah is the link above. You may need to php-ize the quotes or use an echo to print the variables into the link. PHP Example: print "\"\" \n\r"; HTML example: If you're using a refresh or redirect then you may want to have a "if you're not redirected in X seconds, click here:" type backup too. If you want to eliminate some of that lengthy link or allow yourself to change the responder ID here and there (which happens, trust me... flexibility is good) then you may want to use the wrapper provded in sub_wrapper.php. Read the instructions in sub_wrapper.php to set it up. From there, other's can simply call it as an img load or a redirect (again, I perfer the redirect. sub_wrapper has full instructions that your affiliates can follow). A complete example of using the wrapper is available there as well. Persistent connections - PHP offers a mysql_pconnect function that creates a persistent connection. If you're using this script in a heavy way... ie: lots of responders, subscribers or messages, do yourself a huge favor and un-comment the pconnect line and re-comment the standard connect line in functions.php under DB_connect. I've never tested persistent connections so I don't how if it'll work, but according to the php manual they're supposed to be fairly interchangable. Doing this will reduce the load on your server and probably speed up your queries. If you do use pconnect send me an email and let me know how it goes... especially any bugs or problems that you discover. Sending a new message to entire list at the same time - This can be done very easily. Just create a new message and set it's time to 1 minute (not 0. Zero might end up with it not being sent). This will add a message to the database and send it out on the next cycle. You can add as many of these messages as you want, you can edit them and resend them out to specific users, lots of different options. POP3 - Once the responder is created go into edit responder and change the POP3 settings. The settings are pretty simple: Enabled - Turns POP3 on or off for this responder. Use HTML - Should people subscribed via Email get HTML-based emails? Clear Msgs - Erases messages after they're downloaded by sendmails.php Confirm - Whether or not you want to send a confirmation before subscribing people. Mailbox - For most people this should just be INBOX. But if you've got access to procmail and server-side boxes, you can use whatever you want. Username - The username Password - The password to log into the mailbox Since HTML email is more likely to get treated as spam, common settings might be: HTML - Yes Clear msgs - Yes Confirm - Yes For a dedicated confirmed opt-in HTML list. HTML - No Clear - No Confirm - No For a transparent auto-mailer that can easily attach to your primary email addresses for automated follow-ups and list building.