I have a website where a user can send out emails from. I have kind of mimics basic form with:
To:
Subject:
Attachments:
I'd make 'send to all' just a checkbox, and the server determines that list (so it's not displayed client side).
With specific users, I'd allow the person who choose ID's from a list (not actual email addresses). If it's not mail client, you probably shouldn't be listen these peoples' emails publically. How you present this depends on how many people are in your database, etc. But autocomplete may be nice, or a simple tree-based selection. (Listing groups > people).
How 'bout a simple select list. All Group1 Group2 Group3 ...
If a group is selected, load a multiple select with the group members in it.
The jQuery plugin I referenced in my answer below has been replaced by a jQuery UI component.
I'd definitely recommend the autocomplete approach. Something like this jQuery plugin would be a good start. You'd need to modify the code to treat commas as a trigger for a new autocomplete search though.
As for the all members, yup, an "All Members" checkbox seems the most straightforward. If you wanted, you could also include keyword triggers in your To field processing so that words like "All" or "Everyone" would be equivalent to selecting the checkbox.
Edit: jQuery is one step ahead of me and the autocomplete plugin already supports multiple entries:
$("#suggest3").autocomplete(cities, {
multiple: true,
mustMatch: true,
autoFill: true
});