I'm going to be emailing all of my site users to update them on recent developments and remind them to come back to the site. Are there any special precautions I should take. I was going to do this through a loop in PHP. I have about 1,000 users.
Sending 10 or more similar emails to a domain in a 30 minute window has also caused us some issues in the past (do not know the cause and it only affects a few domains). So we tend to make batches (in a scripting language such as PHP) then send through a script either using cron or at.
Limit the number of emails sent in each batch and monitor for rejections and abuse@/spam@ replies. Using receipts and unique tracking images will also help you determine the number of emails received. Unfortunately there is no one-size-fits-all solution when it comes to the sending side, but by being proactive you'll find the gaps that need plugged.
One thing you will want to do is make sure to add an unsubscribe at the bottom of your mass email. That way if any of your site users do not want to receive emails like this one in the future, they have a way to do it. This is just good practice in general.
In general it is ok to have mailing lists for different kinds of email for your site so if yous end a different kind of email in the future site users would have to unsubscribe from that separately but your really have to give them a way to get out this kind of email in the future.
When sending e-mail, its generally good to only send to people who have opted in. During your registration process, you should have a check box similar to this:
Then, e-mail only users who have opted in. A much stronger strategy is to use what is known as a double opt in, which requires the user not only to click the box, but also click a confirmation link via e-mail before placed on the list to be contacted. Of course, as @Random Ben suggested, always provide a simple, one click means for users to unsubscribe.
Depending on your country and local laws, you may also be required to:
I would not send a thousand e-mails in a single loop. This could set off anti SPAM measures from your host, as well as ensure your mail is rejected by remote recipients such as MSN. If revenue permits, perhaps check into using a third party that specializes in bulk mail delivery. They will know all of the laws you need to follow, they will have sophisticated software that helps to guarantee a low bounce rate and they are usually quite cheap.
Otherwise, take a look at some of the open source mailing list / bulk mail managers on sites like Sourceforge. These may not be as sophisticated as commercial solutions, but most of them do a good job at 'trickling' out the messages over a longer period of time, while making sure that you don't send too many to one host at one time.
For instance, if 700 of your visitors used
When (and yes, it is when, not if) you end up having to deal with a SPAM blacklist, you will always have a much easier time if you can prove that you use a double opt in system. This tells them that whoever complained (probably) just forgot that they subscribed.
I'd spend just as much time worrying about how people get on the list to be contacted as I would worrying how to send the e-mail.
Companies that do this for a living know how to get on whitelists for major email providers (hotmail, gmail, aol, etc) and will help you with deliverability, unsubscribe links, etc.
Some options are discussed in this question on the webapps site. With mailchimp or campaignmonitor, sending to 1,000 users can cost as little as $15.