This may be moot if you already have cron jobs set up, but that is what it sounds like.
If you are not sure, you can find out by checking the database:
select * from core_email_queue;
That should show the emails that are yet to be sent, and if they date back farther than an hour, it is almost definitely the cron that you are missing (most cron jobs are set up to send emails every 5-15 minutes).
There is also an answer about testing the cron jobs HERE
If it turns out that crons are the problem, you can set it to run in CLI by using the following command:
And when the cron file opens, add this:
*/5 * * * * sh /path-to-magento/cron.sh
Depending on your server, it will tell you, but the 5 in this case is 5 minutes and each asterisk represents a longer period of time, in this order: minutes, hours, day of the month, month, and day of the week.
Magento DevDocs has additional information HERE
Once that is set up correctly (which you can verify by testing with the link above) you will just have to make sure that the settings in
Magento Admin->System->Configuration->Advanced->System->Cron (Scheduled Tasks)
Magento User Documentation has additional information HERE