Cada máquina pode funcionar como cliente e como servidor de email. Na figura ao lado, o host A recebe uma mensagem para enviar para o host B. Esta mensagem é tratada pelo programa de email daquela máquina, o qual tem um módulo cliente SMTP (Simple Mail Transfer Protocol). que estabelece uma conexão TCP/IP com o host B (depois de consultar o serviço de DNS para descobrir seu número IP).
Quem recebe esta mensagem no host A é o programa de email desta máquina que se comporta como um servidor SMTP e atende e responde aos comandos do protocolo SMTP recebidos. Se houver na host B alguma mensagem destinada ao host A ele aproveita a mesma conexão TCP/IP e encaminha tais mensagens. Se isto acontecer, o host B se comporta como cliente SMTP e o host A como servidor, recebendo e respondendo aos comandos do protocolo.
As mensagens recebidas ficam armazenadas nas caixas postais de cada uma das máquinas até que os respectivos usuários venham recolhê-las. Eles podem fazer isto usando outras máquinas, que interagem com os servidores de email para recolher as mensagens, podendo deixar uma cópia das mesmas no servidor ou remover as mensagens já recolhidas para a sua estação de trabalho.
Para recolher as mensagens do servidor o usuário utiliza programas referidos como clientes de email, os quais podem interagir com o servidor de email usando protocolos tais como: