D'une manière générale, les applications de messagerie électronique se divisent en trois types et chacune d'elle peut appartenir à un ou plusieurs de ces type. Chaque type joue un rôle bien précis dans le processus de déplacement et de gestion des messages électroniques. Bien que la plupart des utilisateurs ne connaissent que le programme de courrier électronique qu'ils utilisent pour recevoir et envoyer des messages, chacun de ces trois types d'application est important pour assurer que les messages arrivent à la bonne destination.
L'Agent de Transfert de Courrier (ATC, ou MTA de l'anglais 'Mail Transfer Agent') sert à transférer des messages électroniques entre des hôtes utilisant SMTP. Un message peut requérir l'utilisation de plusieurs ATC lors de sa progression vers sa destination finale.
Alors que l'acheminement de messages entre ordinateurs peut sembler plutôt simple et direct, l'ensemble du processus permettant de décider si un ATC donné peut ou devrait accepter un message à envoyer est en fait assez complexe. De plus, en raison des problèmes créés par les spams, l'utilisation d'un ATC donné est généralement limitée par la configuration même de l'ATC ou par le manque d'accès au réseau de l'ATC.
Nombre d'ATC plus gros et plus complexes peuvent aussi être utilisés pour envoyer des messages. Toutefois, il ne faut pas confondre cette opération avec le vrai rôle d'un ATC. La seule raison pour laquelle les programmes client de messagerie peuvent envoyer des emails (comme ATC) réside dans le fait que l'hôte exécutant l'application ne dispose pas de son propre ATC. Cette situation s'applique tout particulièrement aux programmes client de messagerie faisant partie de systèmes d'exploitations qui ne sont pas basés sur Unix. Cependant, ces programmes client de messagerie n'envoient que des messages de sortie à un ATC qu'ils sont autorisés à utiliser et n'acheminent pas directement le message au serveur de messagerie du destinataire.
Étant donné que Red Hat Linux installe deux ATC, à savoir Sendmail et Postfix, les programmes client de messagerie ne sont généralement pas sollicités pour agir en tant qu'ATC. Red Hat Linux inclut également un ACT avec un objectif bien spécifique, nommé Fetchmail.
Pour obtenir de plus amples informations sur Sendmail et Fetchmail, reportez-vous à Section 11.3 Agent de transfert de courrier (ATC).
Un Agent de Distribution de Courrier (ADC ou MDC de l'anglais 'Mail Delivery Agent') est utilisé par l'ATC pour distribuer le courrier arrivant dans la boîte à lettres de l'utilisateur approprié. Dans de nombreuses situations, l'ADC est en fait un Agent de Distribution Locale (ADLou LDA de l'anglais 'Local Delivery Agent'), comme mail ou Procmail.
En fait, tout programme traitant un message pour la distribution jusqu'au point où il peut être lu par une application client de messagerie peut être considéré comme un ADC. Pour cette raison, certains ATC ( comme Sendmail et Postfix) peuvent aussi jouer le rôle d'un ADC lorsqu'ils ajoutent de nouveaux messages électroniques au fichier spoule (ou 'spool') de courrier électronique d'un utilisateur local. En général, les ADC n'acheminent pas de messages entre les deux systèmes et ne fournissent pas une interface utilisateur; les ADC distribuent et classent les messages sur un ordinateur local pour qu'une application client de messagerie puissent y accéder.
Un Agent de Gestion de Courrier (AGC, ou MUA de l'anglais 'Mail User Agent') est en fait une application client de messagerie. Un AGC est un programme qui, au minimum, permet à un utilisateur de lire et écrire des messages électroniques. De nombreux AGC peuvent récupérer des messages au moyen de protocoles POP ou IMAP, établissant des boîtes à lettres pour stocker les messages et envoyant des messages de sortie à un ATC.
Les AGC peuvent être graphiques, comme Mozilla Mail, ou peuvent avoir une simple interface à base de texte comme mutt ou pine.