So bob has sent his message to fairynet, and fairynet has managed to get the message to dragonnet. But how does penny get that message?

Well the last Mail Transfer Agent that accepts mail for dragonnet will hand that message to a Mail Delivery Agent (MDA), it is this program that is responsible for storing the messages in a mailbox for penny and allowing penny’s Mail User Agent to collect those messages. Up until know the process has been one where the message get’s pushed to the next hop, but once the Mail Delivery Agent has placed the message in penny’s mailbox the message must be pulled out for penny to read it.

There are two main ways for a message to get from the mailbox to the user’s Mail User Agent. The Mail Delivery Agent is responsible for handling whichever the user uses.

One is Post Office Protocol version 3 (POP3). Using this the Mail User Agent accepts the messages and stores them locally (earlier versions of Post Office Protocol exist, but are not in wide use anymore).

The other is Internet Message Access Protocol (IMAP). Using this the Mail User Agent reads the messages, but they are stored in the mailbox controlled by the Mail Delivery Agent.

In both cases the Mail User Agent connects to the Mail Delivery Agent and pulls the messages when it is ready for them rather than the Mail Delivery Agent pushing the messages out.

If penny chooses to respond the whole process starts again, penny’s Mail User Agent submits the response to dragonnet’s Mail Submission Agent, a series of Mail Transfer Agents get the message to fairynet and fairynet’s Mail Delivery Agent puts the message in bob’s mailbox for bob’s Mail User Agent to retrieve.