views:

184

answers:

4

Hey guys, so i have a couple of sites on paid shared hosting, my host limits the mail to 300 per hour. One of my sites has more than 500 subscribers.

My question is how can i send the newsletter to all my subscribers? is there a way or a script that i can use to send the first 300 users the email and after an hour to send the rest...?

i've also considered making a gmail account to send the newsletters via smtp. Do you guys know the limit of free gmail smtp?

+2  A: 

You shouldn't circumvent the restrictions placed by your host. I would suggest you pace your sends, and record your last-sent-id, picking up from there in your next hour. That, or you can place sufficiently sleep-time between sends to allow the entire thing to go out at a rate of about 300/hr.

Jonathan Sampson
It might be worthwhile to check with your host if you go this route and see if they have any problems with having a PHP script running for hours at a time.
William
+1  A: 

Google Mail does have limits, see:

Sending limits In an effort to fight spam and prevent abuse, Google will temporarily disable your account if you send messages to more than 500 recipients or if you send a large number of undeliverable messages. If you use a POP or IMAP client (Microsoft Outlook or Apple Mail, e.g.), you may only send a message to 100 people at a time. Your account should be re-enabled within 24 hours. Source: http://mail.google.com/support/bin/answer.py?hl=en&answer=22839

To get around the problem, you could create a queue table in your db with a list of all the users you're sending the newsletter to. Then send e-mails out in bulks (500 example). Remove the e-mails from the queue table as they're sent out. You could use a cron (if on linux and host allows) to run a PHP script every hour that sends e-mails based off the queue.

William
i've heard about cron jobs on linux hosting and i have access to it form the cpanel... i'll make a research on using cron to periodically run a script
Pablo
+1  A: 

I'd seek a place just to park your MX (not sure of Google's limits, but that could be a start). Its very common for mailing list managers to queue mails to fit within sending limits. I.e. a cron job queries a database, picks up 250 emails to send and sends them out.

The problem lies when you have 10,000 subscribers and need to send non-automated emails from the same MX. I.e., if your limit is consumed getting out a newsletter, what happens to your ability to reply to your own e-mail?

A lot of companies offer MX only hosting, I'd go with one of them and move the whole business of sending the list over there. Or, just get yourself a VPS (its going to be about the same monthly price).

Tim Post
+1  A: 

Thank You for all your Reply guys... it really helped me find a solution for this inconvenience. I personally can't afford VPS hosting nor pay extra for an external for a mail server...

Considering Jonathan Solution and William's Comments i ended up developing a small php application based on XML to send different batch to 250 recipients each with a GAP of 65 minutes.

So the way it works, by default it only enables the first batch link to be clicked and send the newsletters to the first batch of users and recording the exact time this was sent in a XML file. Then using the XML file info the next link registers that the batch before it was sent and starts a count down of 65 minutes with the time on the XML as reference.

So a Script will not be running for hours and the browser could be safely close since all the info required is in the XML file.

This may sound Simple but is a complex and efficient app that dynamically adapts to growth (new subscribers) as it queries the master Table on a database using the sql LIMIT clause to make the different batches. So it doesn't required maintenance.

If anyone is interested on the source code feel free to contact me @ [email protected]

Pablo