I had need for this module the other day. A customer was setup to copy all messages to email; this was hosing up their smtp server. Granted, could have just fixed the email issue, but they were using IMAP\UMS.
Rather than manually click through 200 users and change the email mode, I wrote this up (well, a dirtier version, this one has been snazzied up a bit).
WHAT IT DOES: It prompts you for your start and end range of extensions. It then prompts you for your voicemail to email mode; 0(off), 1(copy), 2(forward), 3(alert).
It then steps through each extension checking to see if it exists, changes it's mode, and then tells you when it's done.
***EDIT THIS IS THE NEW VERSION, IT IS MUCH SIMPLER!!!***
HOW IT DOES IT:
1. Start Range $KEY stored to $CP0
2. End Range does an EVAL and stores $KEY+1 to $CP3
3. Email mode $KEY stored to $CP2.
4. Counter1 set to $CP0
5. Test $CP0 against extensions and $CP3; Variable match plays beeps and ends. No Match goes to generic action that increments counter 1.
6. Extension match does CFG:SET "$CP0" voicemail_emailmode $CP2, Increases Counter 1, Sets $CP0 to value of new incremented counter 1, does 3 second tftp timeout, and then tests that new $CP0 value back at previous step.
This whole thing loops until $CP3 is matched (+1 of last extension in your range), then beeps, and hangs up.
All you need to do do activate it is make a shortcode that points to your module, or the one I provided ChangeEmail. I'm sure you can do that!