I require a Newsletter PHP class that must be configurable for certain settings. This class must not use the standard mail() function because of its limitations and should rather use the PHP PEAR alternatives. The newsletter system must be able to run on a cron as e-Mailing must be queued and stick to specific mailing guidelines/rules.
I am in a shared environment so I **cannot** make use of **3rd party php modules other than PEAR** and I have access to cron jobs (**cannot be run in smaller intervals than 15 minutes**).
Basically the newsletter class needs to send out the mail I give it while maintaining the rules as listed per the project guidelines.
## Deliverables
The mailing list must be configurable to use:
SSL or non SSL connection
SMTP Server Host
Username
Password
Port
The mailing list must be able to:
- Send HTML e-Mails
- Send e-Mails with attachments
There should also be a function that I can query the progress of a newsletter and see how far along it is (eg: 300 emails sent of 500 recipients).
**The script is allowed to use standard PHP and PHP PEAR.**
**Mailing Rules**
The script must be configurable to mail according to the following guidelines. This is a list of rules supplied by my hosting provider as an example, but each of these should be configurable settings:
1. Anytime you're sending a message no matter how large your e-mail list is you must throttle it. We recommend you throttle it to at the very least sending 1 email every 6 seconds.
**So there must be a setting to throttle the email sending and you can specify the time in seconds that the script should wait before sending the next email.**
2. Any mailing list over 900 emails is only allowed to be sent to during off-peak times to prevent high server loads. Off peak times qualify as all day Saturday and Sunday, and 1am - 8 am eastern time M-F.
**So there must be a setting that sets the "max emails during normal hours" and if this is reached, the newsletter must commence during offpeak times (setting that is also configurable).**
3. No Direct SMTP mailers are allowed. An example of this is DarkMailer. Any mail should be relayed through the local MTA (localhost:25) for further delivery by the server and not done directly by scripts.
4. Hourly e-mail limit (eg: 500 emails)
5. Pop checks per hour limit (eg: 60 pop checks per hour)
* * *This broadcast message was sent to all bidders on Wednesday Jan 28, 2009 8:00:29 AM:
Good Day, Just a note to all bidders. Please note that my cron jobs cannot be run in shorter intervals than 15 minutes. Please consider this in your proposal and review your bid as I will be selecting a winning bidder in the next couple of hours. Kind Regards, Michael