If you haven't got the mail yet, then it is somewhere ...
Still on your computer (You did send this, didn't you? Did it actually go? Are you sure?)
Sitting at the ISP mail server - e.g. smtp.saix.net, smtp.afrihost.co.za. Maybe they have a lot of mail, maybe the next server is not yet in the mood to take the mail from them.
Sitting on the spam filter - spam filters receive the mail, and pass it on, which is usually quick. If it's not quick though, then it could sit there for some time.
Received by your own server, but not yet in your mailbox. This actually takes time, but usually you don't notice it.
In your mailbox, but not downloaded by you.
Downloaded by you, but sticking in some dark recess of your computer (e.g. your own anti-virus and spam filter).
All of the steps, except for your own computer, produce logs with time stamps that are added to the headers of the mail. If you view the headers, you will see lines like this:
Received: from n04.lon1.karan.org (n04.lon1.karan.org [22.214.171.124])
by mail.centos.org (Postfix) with ESMTP id 4542AA003A4
for <email@example.com>; Wed, 25 Feb 2015 20:08:46 +0000 (UTC)
When the mail eventually gets through to you, you can see at what time it arrived at each hop in the chain. One of the delays will probably be inordinately long. When you find this, you know where the delay occurred, and it's just a matter of asking why there was a delay at that point. If you sent other mails that were not delayed, you can study the differences and start guessing the reasons.