If you wish to send an email to all the users hosted on your server, you can do so from WHM >> Account Functions >> Email All Users. If you wish to send email to Resellers accounts as well, check the box "Send Email to Reseller's Customers".
If you want to send an email to ALL your email users... not just to the contact emails (half of which are out of date or not monitored by anyone with half a brain)... Here is a command-line PHP script to list all mailbox accounts. I used this when I needed to tell ALL of my email users about my planned upgrade from mbox to maildir, so they would know why their mailboxes where unavailable for as much as several hours (depending on the number of mailboxes you have on your server), and that NeoMail would no longer be available.
I tried the php script above and remembered my PHP is locked down, so I can't execute the system calls. So I wrote a little awk script to do the same thing. Please let me know if you see an improvement!
I used the same logic found in the php script. Thanks for the inspiration to do something cool!
# File: getAllEmail.awk
# This awk script takes the input of ls -d /home/*/mail/*/*
# checks to see if the directory exists, then outputs the email address. My example
# outputs them to a text file called emailaddress.txt
# I wrote it to get all the email addresses out of my cpanel box.
# You are free to use this program for your own purposes. If you
# improve it, please let me know. If it is horribly flawed, please let me know.
# Author: Hans C. Kaspersetz
# Date: 10/27/2007
# Email: hans [at] cyberxdesigns [dot] com
# Usage on cpaneli cli> ls -d /home/*/mail/*/*/ | getAllEmail.awk > emailaddress.txt