@Muturi, I think what @Adam is implying is that you are better of using MailChimp or an equivalent service, since they have already taken care of the myriad issues surrounding bulk emailing, of which, as you mention, getting blocked for sending out too much emails from one server is one of them.
On the other hand, if you are in the mood of reinventing the wheel, then consider NOT sending all the emails in the same PHP loop, but instead consider the following:
1. sleep() between the sending of each email
2. A cron job which calls your PHP code which sends the emails, but LIMITs itself to a few emails per call.
3. I am 99.99% sure that there exists a PHP mailing spooling library which does exactly that way better, I can't remember the exact name though.