GNU/Linux >> Tutoriels Linux >  >> Linux

Comprendre le fonctionnement d'un système de messagerie

Le courrier électronique est devenu un outil de communication extrêmement populaire. Une solide compréhension du concept de système de messagerie aide les administrateurs système à enquêter sur divers types de problèmes avec le système de messagerie.

1. Comment voyage un e-mail

Le diagramme ci-dessous montre une séquence typique d'événements qui se produisent lorsqu'Alice compose un message à l'aide de son agent d'utilisateur de messagerie (MUA). Elle saisit ou sélectionne dans un carnet d'adresses, l'adresse e-mail de son correspondant. Ensuite, elle envoie l'e-mail.

  1. Le MUA d'Alice formate le message au format de messagerie Internet et utilise le protocole SMTP (Simple Mail Transfer Protocol) pour envoyer le message à l'agent de transfert de courrier local (MTA), dans ce cas, smtp.a.org, géré par Fournisseur d'accès Internet (FAI) d'Alice.
  2. Le MTA examine l'adresse de destination fournie dans le protocole SMTP (et non dans l'en-tête du message), dans ce cas [email protected]. Une adresse de messagerie Internet est une chaîne au format [email protected], connue sous le nom d'adresse de domaine entièrement qualifiée (FQDA). La partie avant le signe @ est la partie locale de l'adresse, souvent le nom d'utilisateur du destinataire, et la partie après le signe @ est un nom de domaine. Le MTA recherche ce nom de domaine dans le système de noms de domaine pour trouver les serveurs d'échange de courrier acceptant les messages pour ce domaine.
  3. Le serveur DNS du domaine b.org, ns.b.org, répond par un enregistrement MX répertoriant les serveurs d'échange de courrier pour ce domaine, dans ce cas mx.b.org, un serveur géré par le FAI de Bob.
  4. smtp.a.org envoie le message à mx.b.org via SMTP, qui le transmet à la boîte aux lettres de l'utilisateur bob.
  5. Bob appuie sur le bouton "récupérer le courrier" dans son MUA, qui récupère le message à l'aide du protocole Post Office (POP3) ou du protocole IMAP (Internet Message Access Protocol).

2. Format standard d'e-mail

Un message se compose de champs d'en-tête et, éventuellement, d'un corps. Chaque champ d'en-tête peut être considéré comme une seule ligne logique de caractères ASCII, comprenant un nom de champ et un corps de champ. La partie du corps de champ peut être divisée en plusieurs lines .La structure des champs d'en-tête peut être vue comme étant composée d'un nom de champ suivi de deux-points (" : "), suivi d'un corps de champ et terminé par un retour chariot/saut de ligne.

Le nom du champ doit être composé de caractères ASCII imprimables (c'est-à-dire des caractères dont les valeurs sont comprises entre 33 et 126, décimal, sauf deux-points). Le corps du champ peut contenir n'importe quel caractère ASCII, sauf CR ou LF. (Bien que CR et/ou LF puissent être présents dans le texte réel, ils sont supprimés par l'action de déplier le champ.)

Minimum requis

Date: 26 Aug 76 1429 EDT       Date: 26 Aug 76 1429 EDT
From: [email protected]    or   From: [email protected]
Bcc:                             To: [email protected]

Notez que le champ "Cci" peut être vide, tandis que le champ "À" doit avoir au moins une adresse.

Quelques champs communs

1. Reçu

C'est un champ de trace. Il est utile pour les développeurs et le support. Une copie de ce champ est ajoutée par chaque service de transport qui relaie le message. Les informations sur le terrain peuvent être très utiles pour tracer des problèmes de transport.

Received: from agminet03.b.org (agminet03.b.org [192.168.10.1])
	by gw2.b.org(Switch-3.2.0/Switch-3.2.0) with ESMTP id m3A7ZtIj030617
	for [[email protected]]; Thu, 10 Apr 2008 01:35:55 -0600

2. De

"De" est le champ de l'expéditeur. Ce champ contient l'identité de la ou des personnes qui souhaitent que ce message soit envoyé. Le processus de création de message devrait par défaut ce champ être une adresse de machine unique et authentifiée, indiquant l'AGENT (personne, système ou processus) entrant dans le message. Si cela n'est pas fait, le champ "Expéditeur" DOIT être présent. Si le champ "De" EST défini par défaut de cette façon, le champ "Expéditeur" est facultatif et est redondant avec le champ "De". Dans tous les cas, les adresses dans le champ "De" doivent être utilisables par la machine (addr-specs) et ne peuvent pas contenir de listes nommées (groupes).

From: Alice [[email protected]]

3. À

"To" est un champ récepteur. Ce champ contient l'identité des destinataires principaux du message.

To: [[email protected]]

4. ID de message

« MESSAGE-ID » est un champ de référence. Ce champ contient un identifiant unique (l'unité d'adresse de la partie locale) qui fait référence à CETTE version de CE message. L'unicité de l'identifiant du message est garantie par l'hôte qui le génère. Cet identifiant est destiné à être lisible par machine et pas nécessairement significatif pour les humains. Un identificateur de message se rapporte à exactement une instanciation d'un message particulier ; les révisions ultérieures du message doivent chacune recevoir de nouveaux identifiants de message.

Message-ID: [[email protected]]

5. Sujet

Ceci est destiné à fournir un résumé ou à indiquer la nature du message.

Subject: Hello

Corps

Un champ d'en-tête Content-Type peut être utilisé pour spécifier le type et le sous-type de données dans le corps d'un message et pour spécifier entièrement la représentation native (codage) de ces données.

1. Texte

Le corps est simplement une séquence de lignes contenant des caractères ASCII. Il est séparé des en-têtes par une ligne nulle (c'est-à-dire une ligne sans rien précédant le CRLF).

Content-Type: text/plain

2. MIME - Extensions de messagerie Internet polyvalentes

MIME a été soigneusement conçu comme un mécanisme extensible. Il décrit le champ d'en-tête MIME-Version, le champ d'en-tête Content-Type, le champ d'en-tête Content-Transfer-Encoding. Par exemple :

Content-Type: multipart/mixed;
boundary="------------040406000905020906030306"
--_77c1a01c-9699-4678-a620-eccfaf27c4c8_
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.txt"

3. SMTP - Protocole de transfert de courrier simple

Simple Mail Transfer Protocol (SMTP), un protocole utilisé pour échanger des e-mails entre des points sur Internet. L'objectif du protocole SMTP (Simple Mail Transfer Protocol) est de transférer le courrier de manière fiable et efficace.

le modèle SMTP

La conception SMTP est basée sur le modèle de communication suivant :à la suite d'une demande de courrier de l'utilisateur, l'expéditeur-SMTP établit un canal de transmission bidirectionnel vers un récepteur-SMTP. Le destinataire-SMTP peut être soit la destination ultime, soit un intermédiaire. Les commandes SMTP sont générées par l'expéditeur-SMTP et envoyées au destinataire-SMTP. Les réponses SMTP sont envoyées du destinataire-SMTP à l'expéditeur-SMTP en réponse aux commandes.

Exemple de transaction de messagerie SMTP

Les transactions de messagerie SMTP comportent trois étapes. La transaction est lancée par une commande MAIL qui donne l'identification de l'expéditeur. Une série d'une ou plusieurs commandes RCPT suit, donnant des informations au récepteur. Ensuite, une commande DATA donne les données du courrier. Et enfin, l'indicateur de données de fin de courrier confirme la transaction.

C: #telnet smtp.a.org 25
C: Trying 192.168.**.**...
C: Connected to bigip-adc-mail-10g.a.org (192.168.**.**).
Escape character is '^]'.
C: 220 server ready. Unauthorized Access Prohibited.
S: EHLO test1.a.org
S: 250-bigip-adc-mail-10g.a.org Hello test1.a.org, pleased to meet you
S: 250-8BITMIME
S: 250-SIZE 15728640
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-XAUTH
S: 250 HELP
C: MAIL FROM:
S: 250 2.1.0 Sender OK
C: RCPT TO:
S: 250 2.1.5 Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Subject: email title ..content
C: ....
C: . 

S: 250 2.6.0 Message accepted for delivery
C: quit
S: 221 2.0.0  bigip-adc-mail-10g.a.org Closing connection
S: Connection closed by foreign host.

4. POP3 – Protocole postal version 3

POP3 est utilisé pour lire les e-mails. Avec POP3, votre courrier est enregistré pour vous dans une seule boîte aux lettres sur le serveur. Lorsque vous lisez votre courrier, il est immédiatement téléchargé sur votre ordinateur et, sauf accord préalable, n'est plus conservé sur le serveur.

Dans un premier temps, l'hébergeur du serveur démarre le service POP3 en écoutant sur le port TCP 110. Lorsqu'un client souhaite utiliser le service, il établit une connexion TCP avec le serveur. Lorsque la connexion est établie, le serveur POP3 envoie un message d'accueil. Le client et le serveur POP3 échangent alors des commandes et des réponses (respectivement) jusqu'à ce que la connexion soit fermée ou abandonnée.

Le protocole POP3 est utilisé pour permettre à un poste de travail de récupérer le courrier que le serveur détient pour lui.

Exemple de session POP3

S: [wait for connection on TCP port 110]
C: [open connection]
S:    +OK POP3 server ready [[email protected]]
C: USER Alice
S: +OK Alice is a real hoopy frood
C: PASS secret
S: +OK Alice's maildrop has 2 messages (320 octets)
C:    STAT
S:    +OK 2 320
C:    LIST
S:    +OK 2 messages (320 octets)
S:    1 120
S:    2 200
S:    .
C:    RETR 1
S:    +OK 120 octets
S:    [the POP3 server sends message 1]
S:    .
C:    DELE 1
S:    +OK message 1 deleted
C:    RETR 2
S:    +OK 200 octets
S:    [the POP3 server sends message 2]
S:    .
C:    DELE 2
S:    +OK message 2 deleted
C:    QUIT
S:    +OK dewey POP3 server signing off (maildrop empty)
C:  [close connection]
S:  [wait for next connection]

5. IMAP - Protocole d'accès aux messages Internet

IMAP (Internet Message Access Protocol) est un protocole standard d'accès aux e-mails depuis votre serveur local. IMAP est un protocole client/serveur dans lequel le courrier électronique est reçu et conservé pour vous par votre serveur Internet. Vous (ou votre client de messagerie) pouvez afficher uniquement l'en-tête et l'expéditeur de la lettre, puis décider de télécharger ou non le courrier. Vous pouvez également créer et manipuler plusieurs dossiers ou boîtes aux lettres sur le serveur, supprimer des messages ou rechercher certaines parties ou une note entière. IMAP nécessite un accès continu au serveur pendant que vous travaillez avec votre courrier.

IMAP peut être considéré comme un serveur de fichiers distant. POP3 peut être considéré comme un "stockage et retransmission ” service.

une brève comparaison de POP3 et IMAP

Avantages du protocole POP3

  • Protocole plus simple ; plus facile à mettre en œuvre.
  • Plus de logiciels clients actuellement disponibles.

Avantages du protocole IMAP

  • Peut manipuler les indicateurs d'état des messages persistants.
  • Peut stocker des messages et les récupérer.
  • Peut accéder à plusieurs boîtes aux lettres et les gérer.
  • Peut prendre en charge les mises à jour simultanées et l'accès aux boîtes aux lettres partagées.
  • Convient pour accéder à des données autres que les e-mails ; par exemple, NetNews, documents.
  • Peut également utiliser le paradigme hors ligne, pour un temps de connexion et une utilisation du disque minimum.
  • Protocole compagnon défini pour la gestion de la configuration des utilisateurs (IMSP).
  • Construit pour permettre l'optimisation des performances en ligne, en particulier sur les liens à faible vitesse.

Exemple de connexion IMAP4

Ce qui suit est une transcription d'une connexion IMAP4rev1. Une longue ligne dans cet exemple est interrompue pour plus de clarté éditoriale.

C: telnet imap.a.org 143
S: Trying 192.168.***.***...
S: Connected to imap.a.org (192.168.***.***).
Escape character is '^]'.
S:   * OK IMAP4rev1 Service Ready
C:   a001 login mrc secret
S:   a001 OK LOGIN completed
C:   a002 select inbox
S:   * 18 EXISTS
S:   * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S:   * 2 RECENT
S:   * OK [UNSEEN 17] Message 17 is the first unseen message
S:   * OK [UIDVALIDITY 3857529045] UIDs valid

S:   a002 OK [READ-WRITE] SELECT completed
C:   a003 fetch 12 full
S:   * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
      RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
      "IMAP4rev1 WG mtg summary and minutes"
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      ((NIL NIL "imap" "cac.washington.edu"))
      ((NIL NIL "minutes" "CNRI.Reston.VA.US")
      ("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL
      "[[email protected]]")
       BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92))
S:    a003 OK FETCH completed
C:    a004 fetch 12 body[header]
S:    * 12 FETCH (BODY[HEADER] {350}
S:    Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S:    From: Terry Gray [[email protected]]
S:    Subject: IMAP4rev1 WG mtg summary and minutes
S:    To: [email protected]
S:    cc: [email protected], John Klensin [[email protected]]
S:    Message-Id: [[email protected]]
S:    MIME-Version: 1.0
S:    Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S:    )
S:    a004 OK FETCH completed
C:    a005 store 12 +flags \deleted
S:    * 12 FETCH (FLAGS (\Seen \Deleted))
S:    a005 OK +FLAGS completed
C:    a006 logout
S:    * BYE IMAP4rev1 server terminating connection
S:    a006 OK LOGOUT completed


Linux
  1. Comment fonctionne Hexdump

  2. Comment changer le nom d'hôte sous Linux

  3. Présentation des modèles rsyslog

  4. Comment imprimer un message sur stderr dans Go ?

  5. Comment trier cette sortie 1,10,11..2

Comment configurer Atlantic.Net Email

Comment installer Cockpit sur Debian 10

Comment mettre à niveau Ubuntu 18.04 vers Ubuntu 20.04

Comment installer Nginx sur CentOS 8

Comment enregistrer de l'audio dans Ubuntu 20.04

Comment monter NFS sur Debian 11