So we know how a message is moved around between computers, to get from one computer system to another. But how does bob get his message to fairynet to start with?

As well as having a Mail Transfer Agent that sends messages on to other computers, and gets messages from other computers if fairynet accepts emails, fairynet will have whats called a Mail Submission Agent (MSA) that is very similar to a Mail Transfer Agent, except it allows users to authenticate.

The Mail Submission Agent accepts connections from Mail User Agents (MUAs) in use by users. These could be software like Microsoft Outlook, running on the users computer at home, or they could be programs running on a webserver for a webmail service like Google’s Gmail.

The Mail Submission Agent and Mail User Agent talk a version of the conversation between computers we already discussed that includes sending a user identifier such as a username, and a shared secret such as a password. This makes the conversation more sensitive.

To protect this conversation the Mail Submission Agent could either listen on an encrypted channel, so the email conversation is encrypted before it starts, or it could allow encryption to be started after the connection is established using a command called “STARTTLS”. This command is part of the specification for our email conversations, and as the Mail Submission Agent and Mail Transfer Agent provide very similar functions they are often the same program, if “STARTTLS” is available and understood by the Mail Transfer Agent it can be used to protect the message over the network, but each Mail Transfer Agent that handles the message will see the message without the protection of encryption.