I'm preparing a website that will send email notifications to registered users. From my experience I know, that sending emails is somewhat a painful process for PHP, especially when we're talking about thousands. One of my websites sends email every now and then to 1000-1500 people. It takes around 5mins for PHP to accomplish that, so we run it overnight when the server load is the lowest. I'm using native mail()
function without any SMTP. This runs fine on a dedicated server, but I'm not a big fan of this solution.
I want to be able to send similar amounts at any time without risking the server going down (and it to be blacklisted).
I've read, that ideal solution is to send emails in batches (say of 20) every couple of minutes from a script that's triggered by Cron. This seems to me like a really reasonable idea, but... What if I don't have access to Cron (not all hosting providers give access to it) and website isn't popular enough to be able to trigger the script on page load?
I'm insisting on using my server to do the mailing and not any external solution.
PS. I found solutions like these: http://www.mywebcron.com/ but is this any good?
EDIT
Just to add:
- I'm using CodeIgniter,
- rate at which emails are sent from my current server is usually 0.2sec per email.