problem is there's no bounce or batch handling, and if something bombs due to server / isp limits / script timeout, good luck tracking that down.
why don't you just use mailchimp or campaign monitor?
depending on how big your number of recipients is...
I can vouch for phpMailer as well. It supports Linux's mail() function, or if you host on Windows it can support SMTP (for remove mailservers), mail MIME attachments, plain text or full HTML and much more. You literally just copy the libraries into your applications' folders and call the function where needed.