Quels protocoles et serveurs sont impliqués dans l’envoi d’un e-mail, et quelles sont les étapes ?

StackOverflow https://stackoverflow.com/questions/32744

  •  09-06-2019
  •  | 
  •  

Question

Depuis quelques semaines, j'essaie de comprendre comment fonctionne le courrier électronique.Je comprends assez bien le processus par lequel un client reçoit du courrier d'un serveur utilisant POP.Je comprends également comment un ordinateur client peut utiliser SMTP pour demander à un serveur SMTP d'envoyer un message.Cependant, il me manque encore quelque chose...

D'après ce que je comprends, le courrier sortant doit effectuer trois voyages :

  1. Client (utilisateur Gmail utilisant Thunderbird) vers un serveur (Gmail)
  2. Du premier serveur (Gmail) au deuxième serveur (Hotmail)
  3. Deuxième serveur (Hotmail) vers deuxième client (utilisateur de Hotmail utilisant OS X Mail)

Si je comprends bien, la première étape utilise SMTP pour que le client communique.Le client s'authentifie d'une manière ou d'une autre (par exemple, avec USER et PASS), puis envoie un message au serveur Gmail.

Cependant, je ne comprends pas comment le serveur Gmail transfère le message vers le serveur Hotmail.

Pour la troisième étape, j'en suis presque sûr, le serveur Hotmail utilise POP pour envoyer le message au client Hotmail (en utilisant à nouveau l'authentification).

Alors la grande question est : lorsque je clique sur Envoyer, Mail envoie mon message à mon serveur Gmail, comment mon serveur Gmail transmet-il le message, par exemple, à un serveur Hotmail pour que mon ami puisse le recevoir ?

Merci beaucoup!

~Jason


Merci, cela a été utile jusqu'à présent.

Si je comprends bien, le premier client envoie le message au premier serveur via SMTP, souvent à une adresse telle que smtp.mail.SOMESERVER.com sur le port 25 (généralement).

Ensuite, SOMESERVER utilise à nouveau SMTP pour envoyer le message à RECEIVESERVER.com sur le port 25 (pas smtp.mail.RECEIVESERVER.com ou quoi que ce soit de sophistiqué).

Ensuite, lorsque le destinataire demande son courrier à RECEIVESERVER, via POP, il reçoit le message...droite?

Merci encore (surtout au Dr-jan),

Jason

Était-ce utile?

La solution

Le serveur SMTP de Gmail (qui a accepté le message de Thunderbird) acheminera le message vers le destinataire final.

Pour ce faire, il utilise DNS pour trouver l'enregistrement MX (mail Exchanger) pour la partie nom de domaine de l'adresse e-mail de destination (hotmail.com dans cet exemple).Le serveur DNS renverra une adresse IP à laquelle le message doit être envoyé.Nous espérons que le serveur à l'adresse IP de destination exécutera SMTP (sur le port standard 25) afin de pouvoir recevoir les messages entrants.

Une fois le message reçu par le serveur Hotmail, il est stocké jusqu'à ce que l'utilisateur approprié se connecte et récupère ses messages via POP (ou IMAP).

Jason - pour répondre à votre suivi...

Ensuite, SOMESERVER utilise à nouveau SMTP pour envoyer le message à RECEIVESERVER.com sur le port 25 (pas smtp.mail.RECEIVESERVER.com ou quoi que ce soit de sophistiqué).

C'est exact : le nom de domaine auquel envoyer est considéré comme tout ce qui se trouve après le « @ » dans l'adresse e-mail du destinataire.Souvent, RECEIVESERVER.com est un alias pour quelque chose de plus spécifique, par exemple quelque chose comme incoming.RECEIVESERVER.com (ou, en effet, smtp.mail.RECEIVESERVER.com).

Vous pouvez utiliser nslookup pour interroger vos serveurs DNS locaux (cela fonctionne sous Linux et dans une fenêtre cmd Windows) :

nslookup
> set type=mx
> stackoverflow.com
Server:         158.155.25.16
Address:        158.155.25.16#53

Non-authoritative answer:
stackoverflow.com       mail exchanger = 10 aspmx.l.google.com.
stackoverflow.com       mail exchanger = 20 alt1.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 30 alt2.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 40 aspmx2.googlemail.com.
stackoverflow.com       mail exchanger = 50 aspmx3.googlemail.com.

Authoritative answers can be found from:
aspmx.l.google.com      internet address = 64.233.183.114
aspmx.l.google.com      internet address = 64.233.183.27
>                  

Cela nous montre que les e-mails adressés à toute personne sur stackoverflow.com doivent être envoyés à l'un des serveurs Gmail indiqués ci-dessus.

L'article Wikipédia mentionné (http://en.wikipedia.org/wiki/Mx_record) discute des numéros de priorité indiqués ci-dessus (10, 20, ..., 50).

Autres conseils

Vous recherchez l'agent de transfert de courrier, Wikipédia a un bel article sur le sujet.

Dans les services de messagerie Internet (MHS), un agent de transfert de messages ou agent de transfert de courrier (MTA) ou relais de messagerie est un logiciel qui transfère des messages électroniques d'un ordinateur à un autre à l'aide d'une architecture d'application client-serveur.Un MTA implémente à la fois les parties client (envoi) et serveur (réception) du Simple Mail Transfer Protocol.

Les termes serveur de messagerie, échangeur de messagerie et hôte MX peuvent également faire référence à un ordinateur exécutant la fonction MTA.Le système de noms de domaine (DNS) associe un serveur de messagerie à un domaine avec des enregistrements de ressources d'échangeur de courrier (MX) contenant le nom de domaine d'un hôte fournissant des services MTA.

Vous pourriez également être intéressé de savoir pourquoi le lien GMail vers HotMail utilise SMTP, tout comme votre client Thunderbird.En d'autres termes, puisque votre client peut envoyer des e-mails via SMTP et qu'il peut utiliser DNS pour obtenir l'enregistrement MX de hotmail.com, pourquoi ne l'envoie-t-il pas directement là-bas, en ignorant complètement gmail.com ?

Il y a plusieurs raisons, certaines historiques et d'autres pour la sécurité.Dans la question initiale, il était supposé que votre client Thunderbird se connectait avec un nom d'utilisateur et un mot de passe.Ce n’est souvent pas le cas.SMTP ne nécessite pas de connexion pour envoyer un e-mail.Et SMTP n'a aucun moyen de savoir qui envoie réellement le courrier.Ainsi, le spam est né !

Il existe malheureusement encore de nombreux serveurs SMTP qui permettent à chacun de se connecter et d'envoyer du courrier, en faisant aveuglément confiance à l'expéditeur.Ces serveurs sont appelés « relais ouverts » et sont régulièrement mis sur liste noire par les administrateurs plus intelligents d'autres serveurs de messagerie, en raison du spam qu'ils génèrent.

Les administrateurs de serveur SMTP responsables configurent leur serveur pour accepter la livraison du courrier uniquement dans des cas particuliers 1) le courrier provient de « son propre » réseau, ou 2) le courrier est envoyé à « son propre » réseau, ou 3) l'utilisateur présente des informations d'identification qui l'identifient en tant qu'expéditeur de confiance.Le cas n°1 est probablement ce qui se produit lorsque vous envoyez du courrier depuis le travail ;votre ordinateur se trouve sur le réseau approuvé, vous pouvez donc envoyer du courrier à n'importe qui.De nombreux serveurs de messagerie d'entreprise ne nécessitent toujours pas d'authentification, vous pouvez donc usurper l'identité de n'importe qui dans votre bureau.Amusant!Le cas n°2 est celui où quelqu'un vous envoie un courrier.Et le cas n°3 est probablement ce qui se passe avec votre exemple GMail.Vous ne venez pas d'un réseau fiable, vous êtes simplement sur Internet avec les spammeurs.Mais en utilisant un mot de passe, vous pouvez prouver à GMail que vous êtes celui que vous prétendez être.

L’aspect historique est qu’autrefois, le lien entre Gmail et Hotmail était susceptible d’être intermittent.En mettant votre courrier en file d'attente sur un serveur local, vous pourriez vous en laver les mains, sachant que lorsqu'un lien était établi, le serveur local pourrait transférer vos messages vers le serveur distant, qui conserverait le message jusqu'à ce que l'agent du destinataire le récupère. .

Le premier serveur recherchera dans DNS un enregistrement MX du serveur Hotmail.MX est un enregistrement spécial qui définit un serveur de messagerie pour un certain domaine.Connaissant l'adresse IP du serveur Hotmail, le serveur GMail enverra le message via le protocole SMTP et attendra une réponse.Si le serveur Hotmail tombe en panne, le serveur GMail tentera de renvoyer le message (cela dépendra de la configuration du logiciel du serveur).Si le processus se termine correctement, alors ok, sinon, le serveur GMail vous informera qu'il n'a pas pu transmettre le message.

Si vous voulez vraiment savoir comment fonctionne le courrier électronique, vous pouvez lire le SMTP-RFC ou la POP3 RFC.

Tous les e-mails sont transférés via SMTP (ou ESMTP).
La chose importante à comprendre est que lorsque vous envoyez un message à someguy@hotmail.com, la destination de ce message n'est pas son PC.La destination est le dossier de la boîte de réception d'un gars sur le serveur hotmail.com.
Une fois le message arrivé à destination.L'utilisateur peut vérifier s'il a de nouveaux messages sur son compte sur le serveur Hotmail et les récupérer via POP3.

Il serait également possible d'envoyer le message sans utiliser le serveur Gmail, en l'envoyant directement depuis votre PC vers Hotmail via SMTP.

Étapes 2 à 3 (c.-à-d.Gmail vers Hotmail) se ferait normalement via SMTP (ou ESMTP - SMTP étendu).

Hotmail n'envoie rien à un client via POP3.Il est important de comprendre certaines nuances ici.Le client contacte Hotmail via POP3 et demande son courrier.(c'est à dire.le client initie la discussion).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top