A lot of similar questions show up in Google, but I can't find a solution for Drupal 7.
I often use Views Bulk Operations for this, and send a tokenized email. I have it create jobs rather than sending everything all at once. But every year I sent an email to 18000 members.
Update: Sadly, token replacement (a key feature to do this successfully, unless you're sending the same message to everybody) seems to be broken right now in both 6.x-1.x and 7.x-3.x of VBO. See http://drupal.org/node/1348552)
The basic strategy:
- Create a view of users
- In D6, you make it a VBO view by changing the style; in D7 you do it by adding a "bulk operations" field.
- When configuring the style or the field, tell it you want to send an email (or tokenized email in D6; make sure you have token_actions enabled).
- Send the email. Use tokens in your email like
- D6: [mail] and [user] - there are prompts to show you how
- D7: [user:mail] and [user:name]. It's hard to figure out the right tokens for D7, but if you install and enable the Token module and then visit the admin->configure->system->actions and create an email action, you'll be prompted with the available options.
Things you'll want to do for testing:
You could use the Mass Contact module.
The Mass Contact module allows anyone with permission to send a single message to multiple users of a site, using its roles functionality.