There are many articles online about this very topic as most people share the false assumption that email communication is always instant, because a majority of the time it feels like it is. However, the truth is many times it is not and it was designed to be that way.
The email delivery protocol was designed in 1982, and is pretty much exactly the same today as it was back then. The reason it hasn’t changed is 2 fold. First, it has proven to be very resilient and reliable, it is extremely rare for an email to just not be delivered. Second, since email is so widely used and has been for so long, changing the way it works would be very complicated as every online email service and every company that uses email would have to change at the same time. This gave rise to more instant forms of communication that we use today, instant messaging being the biggest example.
With that information we can begin to understand why emails can be delayed. Email was designed when nothing about computers was reliable, internet connections went down often, servers were not made to be on all the time, and when they were they were often so slow that doing more than a few tasks at a time caused them to not respond to anything else. The email protocol was made to overcome these obstacles by implementing a “Store and Forward” model, meaning every server along the way is responsible for making sure the email was successfully transferred to the next server, and so on, no matter how long that took. If a server has any issues passing that email message to the next server, it stores it in a queue, waits a while, and retries until it is accepted. In the early 90’s it wasn’t uncommon for this to take days, as servers were down for days at a time, and the protocol is designed to handle that. We also have no control over the email message once it leaves our servers, just like dropping a letter at the post office.
I found a great diagram showing all the steps that happen when you send an email. I recreated the diagram so it is more relevant to our environment, shown below. It is important to note that at any of these steps a delay can happen, from seconds, to minutes, to hours depending on the situation. Common errors include the receiving server being flooded with a spam attack, or large virus outbreak making it too busy to respond, or several emails with large amounts of attachments arriving that have to be scanned. We also only have control of the message up until right before the message reaches the internet step in the diagram, after that we have to trust that others will deliver the message safely, and on their time table. This is also why it is impossible to “Unsend” an email message, just like you can’t unsend a letter once the mailman has it.
I hope this helps you have a better grasp on how email works, and why delays happen. Also, unfortunately this is a problem anyone who sends email has to deal with, no matter who they are.