I have found that using a separate service like Constant Contact makes things so much easier. Whenever you send email to large numbers of people like that you risk being thought of as a spammer by email servers.
I admit that I haven’t written any PHP stuff that sends out mass-emails (mainly because I recognized how much trouble it would be), but I can understand how some situations might require a custom script. One thing I found that makes my life a lot easier is having a separate SMTP service to deliver my email.
I use AuthSMTP and they’re great. As long as you keep within their stated limits, you’ll be OK and won’t have to worry about being accidentally thought of as a spammer.