For most of these issues, zmcontrol is your friend
Unless otherwise specified - run all these commands as the zimbra user
su - zimbra
How to see what's running
[zimbra@myhost ~]$ zmcontrol status
Host myhost.example.com antispam Running antivirus Running ldap Running logger Running mailbox Running mta Running snmp Running spell Running
zmcontrol will set the shell exit value based on the status - if everything is running, it will exit with a 0 status. In this case you may see mailbox or zmmailboxdctl listed as not running.
Common Problems with Mailbox
The most common cause for the mailbox not starting is an out of sync MySQL database password.
You can test this by attempting to login to the mysql database:
[zimbra@myhost ~]$ mysql mysql
[zimbra@myhost ~]$ mysql zimbra
If you recieve an error message, then this is the likely cause. You should then proceed to check your mysql tables. 
Perdition can also reserve ports that are used by mailbox. Perdition should not be used in single server environments.
Please see Perdition#Disabling_the_service
zmmailboxdctl is not running
Can be indicated by
[firstname.lastname@example.org ~]$ zmcontrol start Host example.com Starting logger...FAILED Starting mailbox...Done. Starting antispam...Done. Starting antivirus...Done. Starting spell...Done. Starting mta...Done. Starting stats...Done.
[email@example.com ~]$ zmcontrol status Host example.com antispam Running antivirus Running ldap Running logger Running mailbox Stopped zmmailboxdctl is not running mta Running spell Running stats Running
Your http (Apache) server is running and port 80 is in use. Stop http server and now start zimbra.