Sortie du protocole imap lisant les messages de récupération. Ajout de comptes de messagerie Web aux applications de messagerie telles qu'Outlook, Apple Mail, Thunderbird. Protocole POP3 et ses ports

Cet article couvre les protocoles de messagerie Internet les plus couramment utilisés : POP3, IMAP et SMTP. Chacun d’eux a une fonction et une manière de travailler spécifiques. Le contenu de l'article explique quelle configuration est la mieux adaptée aux besoins spécifiques d'un utilisateur lors de l'utilisation d'un client de messagerie. Il révèle également la réponse à la question de savoir quel protocole prend en charge le courrier électronique.

Qu’est-ce que POP3 ?

Le protocole version 3 (POP3) est un protocole de messagerie standard utilisé pour recevoir des e-mails d'un serveur distant vers un client de messagerie local. Vous permet de télécharger des messages sur votre ordinateur local et de les lire même si l'utilisateur est hors ligne. Veuillez noter que lorsque vous utilisez POP3 pour vous connecter à votre compte, les messages sont téléchargés localement et supprimés du serveur de messagerie.

Par défaut, le protocole POP3 s'exécute sur deux ports :

    le port 110 est un port POP3 non crypté ;

    port 995 - il doit être utilisé si vous souhaitez vous connecter à POP3 en toute sécurité.

Qu’est-ce qu’IMAP ?

Internet Message Access Protocol (IMAP) est un protocole de réception de messages électroniques, utilisé pour accéder au courrier électronique sur un serveur Web distant à partir d'un client local. IMAP et POP3 sont les deux protocoles les plus couramment utilisés pour recevoir des e-mails et sont pris en charge par tous les clients de messagerie et serveurs Web modernes.

Le protocole POP3 signifie que votre adresse e-mail n'est accessible que depuis une seule application, tandis qu'IMAP permet une connexion simultanée depuis plusieurs clients à la fois. C'est pourquoi IMAP est préférable si vous accédez à votre messagerie depuis différents endroits ou si vos messages sont gérés par plusieurs utilisateurs.

Le protocole IMAP fonctionne sur deux ports :

    le port 143 est le port IMAP non chiffré par défaut ;

    port 993 - il doit être utilisé si vous souhaitez vous connecter en toute sécurité via IMAP.

Qu’est-ce que SMTP ?

Le protocole est un protocole standard pour l'envoi de courrier électronique sur Internet.

SMTP fonctionne sur trois ports :

    le port 25 n'est pas chiffré par défaut ;

    port 2525 - il est ouvert sur tous les serveurs SiteGround si le port 25 est filtré (par exemple par votre FAI) et que vous souhaitez envoyer des e-mails non cryptés via SMTP ;

    port 465 - Ceci est utilisé si vous souhaitez envoyer des messages en toute sécurité via SMTP.

Quels protocoles sont utilisés pour échanger des emails ? Concepts et termes

Le terme serveur de messagerie fait référence aux deux serveurs nécessaires pour envoyer et recevoir des e-mails, à savoir SMTP et POP.

Le serveur de courrier entrant est le serveur associé à votre compte d'adresse e-mail. Il ne peut pas y avoir plus d'un serveur de courrier entrant. Pour accéder aux messages entrants, vous avez besoin d'un client de messagerie, un programme capable de récupérer les e-mails d'un compte, permettant à l'utilisateur de lire, transférer, supprimer et répondre aux messages. En fonction de votre serveur, vous pourrez peut-être utiliser un client de messagerie dédié (tel qu'Outlook Express) ou un navigateur Web. Ainsi, Internet Explorer est utilisé pour accéder aux comptes de messagerie. Les messages sont stockés sur le serveur de courrier entrant jusqu'à leur téléchargement. Une fois que vous avez téléchargé votre courrier depuis le serveur de messagerie, vous ne pouvez plus le refaire. Pour réussir le téléchargement des données, vous devez saisir les paramètres corrects dans votre programme de messagerie. La plupart des serveurs de courrier entrant utilisent l'un des protocoles suivants : IMAP, POP3, HTTP.

Serveur de courrier sortant (SMTP)

Il s'agit d'un serveur utilisé uniquement pour l'envoi d'e-mails (pour les transférer de votre programme client de messagerie vers le destinataire). La plupart des serveurs de courrier sortant utilisent Protocol) pour envoyer de la correspondance. En fonction de vos paramètres réseau, le serveur de courrier sortant peut appartenir à votre FAI ou au serveur sur lequel vous avez configuré votre compte. Alternativement, vous pouvez utiliser un serveur SMTP par abonnement qui vous permettra d'envoyer des e-mails depuis n'importe quel compte. En raison de problèmes de spam, la plupart des serveurs de messagerie sortants ne vous permettent pas d'envoyer des e-mails sauf si vous êtes connecté à leur réseau. Un serveur avec un relais ouvert vous permettra de l'utiliser pour envoyer des emails, que vous apparteniez ou non à son groupe réseau.

Ports de messagerie

Pour les réseaux, un port désigne le point final d’une connexion logique. Le numéro de port détermine son type. Voici les ports de messagerie par défaut :

    POP3 - port 110 ;

    IMAP-port 143 ;

    SMTP-port 25 ;

    HTTP-port 80 ;

    SMTP sécurisé (SSMTP) - port 465 ;

    IMAP sécurisé (IMAP4-SSL) - port 585 ;

    IMAP4 sur SSL (IMAPS) - port 993 ;

    POP3 sécurisé (SSL-POP) - port 995.

Protocoles de messagerie : IMAP, POP3, SMTP et HTTP

Fondamentalement, un protocole fait référence à une méthode standard utilisée à chaque extrémité d'un canal de communication. Pour gérer le courrier électronique, vous devez utiliser un client spécial pour accéder au serveur de messagerie. À leur tour, ils peuvent échanger des informations entre eux en utilisant des protocoles complètement différents.

Protocole IMAP

IMAP (Internet Message Access Protocol) est un protocole standard pour accéder au courrier électronique à partir de votre serveur local. IMAP est un protocole client/serveur dans lequel le courrier électronique est reçu et les données sont stockées par votre serveur Internet. Puisqu'il ne nécessite qu'un petit transfert de données, il fonctionne bien même sur une connexion lente, comme une connexion par modem. Lorsqu'il tente de lire un message électronique particulier, le client télécharge les données depuis le serveur. Vous pouvez également créer et gérer des dossiers ou des boîtes aux lettres sur le serveur et supprimer des messages.

Protocole POP3

POP (Post Office Protocol 3) offre aux utilisateurs un moyen simple et standardisé d'accéder à leurs boîtes aux lettres et de télécharger des messages sur leurs ordinateurs.

Lorsque vous utilisez POP, tous vos e-mails seront téléchargés du serveur de messagerie vers votre ordinateur local. Vous pouvez également laisser des copies de vos e-mails sur le serveur. L'avantage est qu'après avoir téléchargé vos messages, vous pouvez déconnecter votre connexion Internet et lire vos emails à votre guise sans encourir de frais de communication supplémentaires. En revanche, avec ce protocole vous recevez et téléchargez de nombreux messages indésirables (notamment du spam ou des virus).

Protocole SMTP

Le protocole est utilisé par un agent de transfert de courrier (MTA) pour transmettre des messages électroniques à un serveur destinataire spécifique. SMTP ne peut être utilisé que pour envoyer des e-mails, pas pour les recevoir. En fonction des paramètres de votre réseau ou de votre FAI, vous ne pourrez peut-être utiliser le protocole SMTP que sous certaines conditions.

Protocoles HTTP

HTTP n'est pas un protocole conçu pour les communications par courrier électronique, mais il peut être utilisé pour accéder à votre boîte aux lettres. On l’appelle aussi souvent courrier électronique Web. Il peut être utilisé pour composer ou recevoir des e-mails depuis votre compte. Hotmail est un bon exemple d'utilisation de HTTP comme protocole de messagerie.

Transferts de fichiers gérés et solutions réseau

Votre capacité à envoyer et recevoir des e-mails est principalement due à trois protocoles TCP. Ce sont SMTP, IMAP et POP3.

SMTP

Commençons par SMTP car sa fonction principale est différente des deux autres. SMTP, ou Simple Mail Transfer Protocol, est principalement utilisé pour envoyer des e-mails depuis un client de messagerie (tel que Microsoft Outlook, Thunderbird ou Apple Mail) vers un serveur de messagerie. Il est également utilisé pour relayer ou transférer des messages électroniques d'un serveur de messagerie à un autre. Cela est nécessaire si l'expéditeur et le destinataire ont des fournisseurs de services de messagerie différents.

SMTP, spécifié dans la RFC 5321, utilise le port 25 par défaut. Il peut également utiliser le port 587 et le port 465. Ce dernier, qui a été introduit comme port de choix pour le SMTP sécurisé (alias SMTPS), est considéré comme obsolète. Mais en fait, il est encore utilisé par plusieurs fournisseurs de services de messagerie.

POP3

Le protocole Post Office, ou POP, est utilisé pour récupérer les messages électroniques de la dernière version largement utilisée, la version 3, d'où le terme « POP3 ».

POP version 3, spécifié dans la RFC 1939, prend en charge les extensions et plusieurs mécanismes d'authentification. Des fonctionnalités d'authentification sont nécessaires pour empêcher les utilisateurs malveillants d'accéder aux communications des utilisateurs.

Le client POP3 reçoit le courrier électronique comme suit :

    se connecte au serveur de messagerie sur le port 110 (ou 995 pour les connexions SSL/TLS) ;

    supprime les copies des messages stockés sur le serveur ;

    se déconnecte du serveur.

    Bien que les clients POP puissent être configurés pour permettre au serveur de continuer à stocker des copies des messages téléchargés, les étapes ci-dessus sont courantes.

    IMAP

    IMAP, notamment la version actuelle (IMAP4), est un protocole plus complexe. Cela permet aux utilisateurs de regrouper les messages associés et de les placer dans des dossiers, qui peuvent à leur tour être organisés hiérarchiquement. Il est également équipé d'indicateurs de message qui indiquent si le message a été lu, supprimé ou reçu. Il permet même aux utilisateurs de rechercher les boîtes aux lettres du serveur.

    Logique de fonctionnement (paramètres imap4) :

    • se connecte au serveur de messagerie via le port 143 (ou 993 pour les connexions SSL/TLS) ;

      récupère les messages électroniques ;

      sert à se connecter avant de fermer l'application client de messagerie et de télécharger des messages à la demande.

    Veuillez noter que les messages ne sont pas supprimés sur le serveur. Cela peut avoir de graves conséquences. Les spécifications IMAP peuvent être trouvées dans la RFC 3501.

    Choisir entre IMAP et POP3

    Étant donné que la fonction principale de SMTP est fondamentalement différente, le dilemme du choix du meilleur protocole implique généralement uniquement IMAP et POP3.

    Si l'espace de stockage du serveur est important pour vous, choisissez POP3. Un serveur avec une mémoire limitée est l'un des principaux facteurs pouvant vous obliger à prendre en charge POP3. Étant donné que IMAP laisse des messages sur le serveur, il peut consommer de l'espace mémoire plus rapidement que POP3.

    Si vous souhaitez accéder à votre courrier à tout moment, il est préférable de vous en tenir à IMAP. Il y a une bonne raison pour laquelle IMAP a été conçu pour stocker des messages sur un serveur. Il est utilisé pour rechercher des messages provenant de plusieurs appareils, parfois même simultanément. Donc, si vous possédez un iPhone, une tablette Android, un ordinateur portable et un ordinateur de bureau et que vous souhaitez lire les e-mails de l'un ou de tous ces appareils, alors IMAP est le meilleur choix.

    La synchronisation est un autre avantage d'IMAP. Si vous accédez aux e-mails à partir de plusieurs appareils, vous souhaiterez probablement qu'ils affichent tous toute activité que vous avez effectuée.

    Par exemple, si vous lisez les messages A, B et C, vous souhaitez qu'ils soient également marqués comme lus sur d'autres appareils. Si vous avez supprimé les lettres B et C, vous souhaiterez que les mêmes messages soient supprimés de votre boîte de réception sur tous les gadgets. Toutes ces synchronisations ne peuvent être réalisées que si vous utilisez IMAP.

    Étant donné qu'IMAP permet aux utilisateurs d'organiser les messages de manière hiérarchique et de les placer dans des dossiers, il les aide à mieux organiser leur correspondance.

    Bien entendu, toutes les fonctionnalités IMAP ont un prix. Ces solutions sont plus difficiles à mettre en œuvre et le protocole finit par consommer beaucoup plus de CPU et de RAM, surtout lorsqu'il effectue le processus de synchronisation. En fait, une utilisation élevée du processeur et de la mémoire peut se produire à la fois du côté client et du côté serveur s'il y a une tonne de messages à synchroniser. De ce point de vue, le protocole POP3 est moins cher, bien que moins fonctionnel.

    La confidentialité est également l’une des questions qui dépendra grandement des utilisateurs finaux. Ils préfèrent généralement télécharger tous les messages électroniques et ne pas en laisser de copies sur un serveur inconnu.

    La rapidité est un avantage qui varie et dépend de la situation. POP3 a la capacité de télécharger tous les messages électroniques une fois connecté. Et IMAP peut, si nécessaire (par exemple lorsque le trafic est insuffisant), télécharger uniquement les en-têtes des messages ou certaines parties et laisser les pièces jointes sur le serveur. Ce n'est que lorsque l'utilisateur décide que les parties restantes valent la peine d'être téléchargées qu'elles seront mises à sa disposition. Par conséquent, IMAP peut être considéré comme plus rapide.

    Cependant, si tous les messages sur le serveur doivent être téléchargés à chaque fois, alors POP3 sera beaucoup plus rapide.

    Comme vous pouvez le constater, chacun des protocoles décrits présente ses propres avantages et inconvénients. C'est à vous de décider quelles fonctionnalités ou capacités sont les plus importantes.

    De plus, la méthode souhaitée pour accéder au client de messagerie détermine le protocole préféré. Les utilisateurs qui travaillent uniquement sur une seule machine et utilisent le webmail pour accéder à leurs nouveaux e-mails apprécieront POP3.

    Cependant, les utilisateurs qui partagent des boîtes aux lettres ou accèdent à leurs e-mails depuis différents ordinateurs préféreront IMAP.

    Pare-feu anti-spam avec SMTP, IMAP et POP3

    La plupart des pare-feu anti-spam traitent et protègent uniquement le protocole SMTP. Les serveurs envoient et reçoivent des e-mails SMTP et ils seront vérifiés par le pare-feu anti-spam de la passerelle. Cependant, certains pare-feu anti-spam offrent la possibilité de protéger POP3 et IMAP4 lorsque des utilisateurs externes ont besoin de ces services pour accéder à leur messagerie.

    Les pare-feu SMTP sont transparents pour les utilisateurs finaux ; Il n'y a aucune modification de configuration pour les clients. Les utilisateurs reçoivent et envoient toujours des e-mails au serveur de messagerie. Ainsi, Exchange ou Dominos doivent configurer le routage des messages vers le pare-feu en fonction du serveur proxy lors de l'envoi d'e-mails, et également offrir la possibilité d'envoyer des e-mails depuis le pare-feu.

Il y a de fortes chances que la plupart des personnes qui lisent ce guide connaissent déjà la technologie de communication la plus couramment utilisée : le courrier électronique. Mais avez-vous déjà réfléchi à la façon dont cela fonctionne réellement ? Dans cet article, nous apprendrons comment fonctionne ce service et ce que sont POP3, SMTP et IMAP.

POP3(protocole de bureau de poste version 3) est souvent utilisé pour communiquer avec un serveur de messagerie distant et télécharger des messages sur un client de messagerie local, puis les supprimer sur le serveur, par exemple Thunderbird, Windows Mail, etc. Cependant, les clients de messagerie offrent généralement le choix de laisser ou non des copies des messages sur le serveur. Si vous utilisez plusieurs appareils pour envoyer des messages, il est recommandé de laisser cette fonctionnalité activée, sinon, sur un autre appareil, vous n'aurez pas accès aux messages envoyés qui n'ont pas été enregistrés sur le serveur distant. Il convient également de noter que POP3 est un protocole unidirectionnel, ce qui signifie que les données sont extraites d'un serveur distant et envoyées au client local.

Les ports POP3 par défaut sont :

Port 110 – port sans cryptage

Le port 995 est un port SSL/TLS, également appelé POP3S

Étape 2 – Différences entre POP3 et IMAP, et quels sont les ports pour IMAP ?

IMAP (Application Layer Protocol for Accessing Email), ainsi que POP3, sont utilisés pour recevoir des e-mails sur un client local. Cependant, il présente une différence significative : seuls les en-têtes des e-mails sont téléchargés, le texte de la lettre elle-même reste sur le serveur. Ce protocole de communication fonctionne dans deux sens : si des changements surviennent sur le client local, ils sont transmis au serveur. IMAP est devenu plus populaire récemment, car des fournisseurs de services de messagerie géants comme Gmail ont commencé à le recommander à la place de POP3.

Les ports IMAP par défaut sont :

  • Port 143 – port sans cryptage
  • Le port 993 est un port SSL/TLS, également appelé IMAP

Étape 3 - SMTP, le protocole pour les communications par courrier électronique sortantes

Protocole de transfert de courrier simple ( SMTP), est utilisé pour communiquer avec un serveur distant, puis envoyer des messages du client local au serveur distant, et finalement au serveur du destinataire du message. Sur votre serveur de messagerie, ce processus est contrôlé par un service spécial ( MTA). Il convient de mentionner que SMTP est utilisé uniquement pour envoyer des messages.

Ports SMTP :

  • Port 25 – port sans cryptage
  • Le port 465 est un port SSL/TLS, également appelé SMTP

Conclusion

Nous espérons que vous comprenez désormais clairement le fonctionnement des protocoles de messagerie et les ports qu'ils utilisent. Dans ce didacticiel, nous avons appris ce que sont POP3, SMTP et IMAP et à quoi ils servent. Par exemple, POP3 et IMAP sont utilisés aux mêmes fins, mais ils abordent ces tâches différemment. IMAP laisse le contenu du message sur le serveur et POP3 le télécharge sur votre ordinateur. Nous avons également découvert quels sont les ports standard pour SMTP, POP3 et IMAP.

La question de la sécurité devient de plus en plus importante à mesure que les technologies de l’information se répandent. Ici, nous devons travailler sur différents aspects liés à de nombreux développements. Par exemple, beaucoup s'intéressent à la question de savoir ce qu'est la sécurité IMAP. Dans quelle mesure InternetAccessProtocol est-il sécurisé ?


Quels avantages présente-t-il ? Dans quel but a-t-il été développé ? Quelles versions existe-t-il ? Quel mécanisme de fonctionnement est utilisé ? Nous essaierons de trier toutes ces questions dans cette revue.

Qu’est-ce qu’IMAP ?

La sécurité de la correspondance est particulièrement importante car elle peut contenir diverses informations. Le protocole IMAP est utilisé pour garantir que seuls les utilisateurs autorisés peuvent accéder aux données de courrier électronique. Il a été développé sur la base de TCP. Ce protocole utilise le port 143. IMAP vous permet de travailler avec du courrier situé sur un serveur central. Le logiciel qui utilise ce protocole effectue les actions nécessaires de telle sorte qu'il semble que toute la correspondance soit stockée sur l'ordinateur de l'utilisateur.

Pour les gros volumes de transfert, un serveur IMAP spécial peut être utilisé. La manipulation des lettres ne nécessite pas l'envoi constant de fichiers avec leur contenu au destinataire. C'est loin d'être le seul protocole utilisé aujourd'hui pour travailler avec les services de messagerie. Le protocole SMTP peut être utilisé pour envoyer des lettres, car en IMAP, la commande d'envoi ne peut garantir une sécurité à 100 %. Ce protocole présente certaines vulnérabilités connues.

Pourquoi IMAP a-t-il été développé ?

Ce protocole a été développé comme alternative au protocole POP3 bien connu. Tout a commencé à cause des lacunes du protocole POP3. Par exemple, il n'offrait pas la possibilité de gérer, déplacer et stocker des messages sur le serveur. C'est pour cette raison que le protocole IMAP a été développé. C'est à l'aide de ce protocole que l'utilisateur peut recevoir du courrier à différents endroits. Cela est devenu possible grâce au fait que toutes les informations nécessaires sont stockées sur un serveur distant.

Avantages d'IMAP par rapport à POP3

Pourquoi le protocole IMAP a-t-il été utilisé ? Le fait est qu'en plus de ceux listés ci-dessus, ce protocole offre de nombreux avantages :

— la connexion n'est pas interrompue lorsque l'interface utilisateur est active ;
— les messages ne seront téléchargés que si le client dispose des exigences appropriées ;
— l'accès simultané de plusieurs utilisateurs est possible, tandis que chaque utilisateur peut suivre les modifications apportées ;
— le client a la possibilité de créer, supprimer ou modifier le nom des boîtes. Vous pouvez également déplacer des messages entre les boîtes aux lettres ;
— si vous disposez de l'extension IMAP 4 AccessControlList, il est possible de modifier les droits d'accès ;
— Vous pouvez également surveiller l'état du message lui-même. Les données de transaction sont appelées drapeaux et sont stockées sur des serveurs ;
— la recherche du message souhaité est effectuée sur le serveur. Il existe un mécanisme spécial pour les extensions.

Messages et leurs attributs

Le protocole IMAP fonctionne uniquement avec les messages qui ne nécessitent pas de paquets avec des en-têtes spéciaux. Chacun de ces packages possède ses propres attributs. Ils peuvent être définis individuellement ou conjointement avec d'autres. Aujourd'hui, il existe déjà six versions des protocoles IMAP. La dernière version est presque toujours utilisée.

Lorsque vous travaillez avec le protocole IMAP, chaque message reçoit son propre code 32 bits. Un identifiant unique est ajouté au code. Le code et l'identifiant forment ensemble une séquence de 64 bits. Il est nécessaire d'identifier le message. C'est ainsi que la sécurité est implémentée dans le protocole IMAP. Plus le message arrive tard, plus l'UID sera important. Ce paramètre est utilisé comme code de réponse lors du processus de sélection de la boîte aux lettres. Ce code ne change pas pendant ou entre les sessions. Si les conditions techniques nécessitent de modifier ce paramètre, alors l'UID doit être plus grand qu'auparavant. Le port IMAP est utilisé pour transmettre des informations.

Numéro du message

Le numéro de séquence du message commence à 1. Chaque message suivant aura un numéro supérieur de 1 par rapport au précédent. La différence avec une boîte aux lettres est que ce numéro peut changer au cours d'une session, par exemple si une lettre a été supprimée.

Indicateurs de message

Cet attribut est une liste qui contient zéro ou un grand nombre de jetons nommés associés aux informations sous-jacentes. IMAP 4.1 a introduit deux types d'indicateurs. Ils peuvent agir temporairement, par exemple lors d'une séance, ou ils peuvent être permanents. L'indicateur système est celui dont le nom est défini dans la spécification du protocole. Tous les drapeaux doivent commencer par le caractère "\". Les indicateurs système suivants sont actuellement définis :

— \seen– le message a déjà été lu ;
— \answered – réponse envoyée ;
— \recent – ​​​​​​le message est apparu pendant la session en cours ;
— \draft – le message a été marqué comme brouillon ;
— \flagged – l'utilisateur a marqué ce message comme important ;
— \deleted – l'utilisateur a supprimé le message.

Date et heure internes

Comment ces paramètres sont-ils déterminés et quelles valeurs doivent y être indiquées ? Si le message a été remis via le protocole SMTP, l'heure et la date du destinataire final sont prises en compte. Si la commande copy a été utilisée, les paramètres de l'expéditeur sont pris en compte. Vous pouvez définir votre propre date et heure. Pour ce faire, vous devez utiliser la commande append.

Interaction client-serveur

Lors de l'utilisation du protocole IMAP, la communication est établie sur une base client-serveur. Le client envoie toutes les commandes reçues et le serveur envoie les données et informations demandées pour compléter la demande. Les messages se présentent sous la forme de chaînes se terminant par une séquence spéciale. Toutes les procédures sont effectuées sur commande du client. Ils sont reconnus à l'aide d'un préfixe d'identification spécial. Cet identifiant est une courte chaîne alphanumérique.

Sinon, cela s'appelle aussi une marque. Chaque équipe a son propre numéro unique. Il existe deux cas possibles dans lesquels les données envoyées par le client peuvent être incomplètes. Le premier cas se produit lorsque l'argument de la commande a un code qui spécifiait auparavant le nombre d'octets. Le deuxième cas se produit lorsqu'une réponse du serveur est requise. Dans les deux cas, le client reçoit une demande de poursuite de la commande. Il doit commencer par le symbole +. Le transfert doit être terminé lorsqu'un certain type de données commence à arriver.

Sinon, il sera impossible de démarrer un nouveau processus. La transmission des données au serveur, la lecture et la sélection des paramètres s'effectuent à l'aide d'un récepteur de protocole. Une fois le traitement de la commande terminé, une réponse avec cette notification sera envoyée au client. Les informations qui n’indiquent pas l’achèvement de l’instruction sont marquées d’un *. C'est ce qu'on appelle une réponse non balisée. Il est également possible dans le protocole IMAP d'envoyer des données au serveur en réponse aux demandes des clients ou de sa propre initiative. Le format des données est indépendant de la raison pour laquelle elles ont été envoyées.

Que pouvez-vous dire sur l’utilisation des services de messagerie populaires ? Les paramètres ne sont pas disponibles pour les utilisateurs IMAP ordinaires. Ils ne peuvent être effectués que si la lettre est envoyée à l'aide d'un programme client spécial. De plus, ces paramètres s'appliquent uniquement aux lettres entrantes. À quoi servent les réponses ? Ils informent l'utilisateur du succès ou de l'échec de la demande. La réponse utilise toujours la même étiquette que celle utilisée par la commande client lors de l'exécution de la procédure.

C'est pour cette raison qu'un transfert de données multiflux est possible. Trois types de réponses peuvent être utilisées pour clarifier cette situation : réussite, échec et erreur de protocole IMAP. Le client doit toujours être prêt à traiter toute réponse qui lui parvient. Les données doivent être écrites pour que le client puisse les utiliser sans avoir à envoyer de requêtes de recherche au serveur. Vous voyez cela assez souvent dans Gmail. Les paramètres IMAP peuvent être modifiés ou modifiés lors de l'utilisation de clients de messagerie dotés d'un large éventail de fonctionnalités.

Nous avons déjà parlé de la manière dont le courrier est envoyé depuis votre ordinateur vers le serveur et atteint le serveur du destinataire. Dans cet article, nous aimerions vous parler du dernier maillon de cette chaîne : les serveurs et les protocoles de réception des messages électroniques. Vous découvrirez le fonctionnement des protocoles POP3 et IMAP, avec lesquels vous recevez du courrier du serveur vers votre ordinateur. On ne peut pas dire grand-chose du premier protocole en raison de son caractère primitif, mais le deuxième protocole est une invention beaucoup plus intéressante.

L'essence du protocole POP3 est assez simple. Le serveur POP reçoit les messages électroniques de son serveur SMTP et les « distribue » aux boîtes aux lettres d'utilisateurs spécifiques. Tout ce qu'il peut faire, c'est remettre le courrier et marquer les messages lus avec des drapeaux. Ces tâches peuvent être facilement effectuées par n’importe quel client de messagerie, même le plus primitif. Avec le protocole IMAP, tout est beaucoup plus compliqué : il a nettement plus de fonctions, et donc plus d'exigences pour un client de messagerie.

Le protocole IMAP implémente une technologie de boîte aux lettres « pseudo-locale ». Cela signifie que vous pouvez gérer votre boîte aux lettres sur le serveur comme si elle se trouvait sur votre ordinateur local. Dans le même temps, il est possible de travailler facilement avec les dossiers IMAP sur le serveur. C'est un outil très flexible qui vous permet de créer et de supprimer des répertoires. La même chose peut être faite avec les messages eux-mêmes : les trier dans des dossiers, les supprimer ou même les déplacer vers un autre serveur. Dans le même temps, deux boîtes aux lettres sur des serveurs différents peuvent être synchronisées automatiquement - ceci est pratique si vous souhaitez stocker une copie de sauvegarde des lettres ailleurs.

Le protocole a été conçu pour être utilisé sur des canaux lents, ce qui signifie qu'il convient bien à ceux qui travaillent avec des connexions par modem. Et stocker des lettres et des dossiers sur le serveur vous permet d'utiliser une boîte aux lettres partout où il y a un accès à Internet. Vous n'avez plus besoin d'emporter avec vous des CD contenant des e-mails importants ; laissez-les simplement dans un dossier séparé sur le serveur IMAP. De plus, lorsque vous travaillez via le protocole IMAP, la situation habituelle ne se produit pas lorsque votre connexion est interrompue à la centième lettre et que le client recommence à télécharger toutes les lettres.

Un système avancé pour travailler avec des dossiers et des messages sur le serveur vous permet de créer des structures de dossiers arborescentes. Si vous avez reçu beaucoup de lettres, vous n'êtes pas obligé de toutes les télécharger, vous ne pouvez obtenir que les en-têtes, puis les lettres nécessaires seront automatiquement téléchargées lors de leur visualisation. Le serveur IMAP dispose d'un bon système de drapeaux. Vous pouvez marquer les messages avec les drapeaux "Lu", "Réponse", "Drapeau", "Supprimé", "Brouillon" ou "Nouveau message". D'accord, tout est comme sur votre client de messagerie préféré, sauf que dans ce cas, les lettres sont sur le serveur et sont totalement sécurisées et accessibles de n'importe où dans le monde.

L'interaction entre le client de messagerie et le serveur IMAP s'effectue de la même manière qu'avec les serveurs POP3. Le client et le serveur échangent des commandes et des réponses à l'aide d'un protocole de transport. Lors de l'utilisation du protocole TCP, ils fonctionnent via le port 143.

Tout d'abord, le client et le serveur doivent échanger des salutations, après quoi le client envoie des données au serveur et attend une réponse. A la fin de la session, le canal est fermé. Une caractéristique intéressante du protocole IMAP est que le serveur n'a pas besoin de répondre aux commandes une par une. Autrement dit, en attendant une réponse à une demande, le client peut continuer à envoyer des demandes. Le serveur y répondra par ordre d'exécution, en traitant les demandes simultanément. C'est très pratique car cela permet d'exécuter des tâches chronophages sur le serveur (comme rechercher des emails selon un critère précis) et de ne pas empêcher le serveur d'exécuter d'autres requêtes (par exemple télécharger un email spécifique).

Alors, quand pourriez-vous avoir besoin d’IMAP au lieu du POP3 standard ? Premièrement, si vous accédez à Internet via plusieurs ordinateurs ou si vous utilisez plusieurs programmes de messagerie. Deuxièmement, si vous ne souhaitez pas télécharger et laisser toutes les lettres sur votre disque dur en même temps, par exemple pour des raisons de sécurité. Troisièmement, si vous souhaitez pouvoir accéder à votre correspondance depuis n'importe où dans le monde. Eh bien, des opérations de recherche, un bon système de répertoires imbriqués et des indicateurs d'état du courrier seraient également utiles.

Maintenant que nous comprenons un peu les fonctions du protocole IMAP, essayons de trouver le logiciel qui fonctionnerait le mieux avec ce protocole. Toutes les informations à ce sujet ont été obtenues sur le site officiel du protocole.

Malheureusement, même si le protocole a été développé il y a longtemps, il n'est pas si facile de trouver un logiciel permettant de l'utiliser. Le client de messagerie le plus populaire, The Bat! fonctionne avec le protocole IMAP de manière assez monotone. Il l'utilise de la même manière que POP3 : pour télécharger des messages sur la machine locale et les supprimer sur le serveur. Aucune fonction supplémentaire pour laquelle le protocole a été créé n'est prise en charge. Certes, il est désormais prévu de publier une nouvelle version du programme, qui promet de fournir une prise en charge complète du protocole IMAP, mais pour l'instant, nous devons rechercher d'autres solutions logicielles.

Il existe un client de messagerie assez populaire dans le monde entier, Eudora. En plus d'autres fonctionnalités utiles, il prend en charge le nouveau protocole IMAP. Il peut fonctionner à distance avec un serveur IMAP, télécharger les lettres nécessaires sur une machine locale et prendre en charge d'autres fonctions de travail avec le protocole que nous avons décrit. En un mot, étant donné que le client est déjà assez simple à utiliser et est devenu assez connu, il peut être recommandé à ceux qui souhaitent profiter de tous les avantages du travail avec le protocole IMAP.

Lorsque vous choisissez vous-même un programme, faites attention à certains paramètres du tableau. Par exemple, il est hautement souhaitable que votre client de messagerie prenne en charge le paramètre « Utilisation déconnectée ». Cela signifie que dans ce cas, vous pourrez utiliser le programme de messagerie sans accès constant à Internet. Vous vous connecterez au serveur, téléchargerez de nouvelles lettres ou en-têtes, y répondrez, effectuerez les actions nécessaires avec les dossiers, puis vous reconnecterez, et les modifications seront apportées automatiquement sur le serveur. Ceci est très pratique lorsque vous devez accéder à Internet via un modem avec des frais de connexion basés sur le temps, afin de ne pas augmenter vos coûts d'accès à Internet.

Ainsi, pour résumer ce qui précède, on peut dire qu'IMAP est un format plus avancé que le simple protocole POP3. Son utilisation est justifiée pour ceux qui utilisent leur boîte aux lettres depuis différentes parties du monde et souhaitent avoir accès à leur courrier à tout moment. C'est pratique car cela vous permet de travailler en ligne avec votre boîte aux lettres et d'effectuer de nombreuses opérations dessus. Afin de profiter de tous les avantages de l'IMAP, vous devez disposer d'un client de messagerie approprié (vous en trouverez une liste sur le site du protocole).

IMAP fonctionne pleinement dans Mail.Ru Mail depuis un certain temps déjà et je suis prêt à parler des problèmes que nous avons rencontrés lors de son lancement. Certains d'entre eux étaient liés aux particularités du protocole lui-même et à son histoire, d'autres étaient dus aux spécificités de l'interaction IMAP avec notre stockage. Une catégorie distincte de difficultés est causée par la variété des clients de messagerie.

Pour plus de détails - bienvenue sur chat.

Le lancement actuel d'IMAP est notre deuxième approche du projectile. La dernière fois, nous avons pris le serveur Dovecot et essayé de le personnaliser nous-mêmes. Nous n'étions pas satisfaits du résultat : il ne convenait pas à nos chargements et à notre infrastructure. Cette fois, nous avons décidé de prendre un chemin différent et avons écrit notre propre solution.


Nous avons lancé IMAP en mai, mais nous ne l'avons annoncé qu'en juin. En fait, le public de mai est constitué de nos employés et des utilisateurs dont les clients ont automatiquement détecté la présence d'IMAP dans notre messagerie et y ont connecté les comptes nouvellement ajoutés.

Difficultés spécifiques au protocole IMAP

1. La lourdeur du protocole lui-même
La première version du protocole IMAP est apparue en 1986. La norme IMAP actuelle est la version 4rev1, mise à jour en 2003. Au cours d'une si longue période, la norme a considérablement évolué : sa version actuelle compte environ 200 pages.

Aujourd'hui, de nombreux points décrits dans la norme sont obsolètes et ne sont plus nécessaires dans les conditions actuelles. Par exemple, le protocole prévoit de renvoyer le nombre de lignes et la somme MD5 des parties d'une lettre - une fonctionnalité qui n'est pas réellement utilisée dans les clients modernes.

De plus, il existe de nombreuses extensions de protocole facultatives. Certains d'entre eux, en fait, sont nécessaires pour travailler facilement avec la boîte aux lettres.

Pour surmonter l'héritage historique, nous avons dû mettre en œuvre plusieurs extensions. L'un d'eux est UID+ : lorsque nous copions ou ajoutons une lettre, nous renvoyons l'ID de la nouvelle lettre apparue sur le serveur suite à la copie ou à l'ajout. Cela nous permet d'économiser sur l'opération de recherche gourmande en ressources que le client devait effectuer pour reconnaître quel e-mail a été ajouté.

2. Absence de modèle standard pour travailler avec le serveur
IMAP propose de nombreuses façons de résoudre le même problème et, par conséquent, presque tous les clients ont un modèle de fonctionnement différent. Il est également important que les modèles de fonctionnement soient très différents du fonctionnement du webmail ou de POP3.


Plus de la moitié proviennent de clients exécutant des appareils Apple : la raison en est que la détection automatique IMAP fonctionne bien pour eux. Outlook, au contraire, fonctionne via POP3 par défaut et vous devez configurer IMAP manuellement.

Ici, nous pouvons distinguer 2 catégories principales : les clients de bureau, qui demandent immédiatement des informations sur toutes les lettres d'une boîte aux lettres ou d'un dossier, et les clients mobiles, qui demandent initialement des informations uniquement sur les lettres les plus récentes. Ensuite, nous avons dû étudier les demandes qu'ils font pour mettre à jour l'état, comment ils extraient exactement les informations sur les lettres.

Pourquoi était-ce une étape nécessaire pour nous ? Avec des charges modestes (par exemple, si le serveur dessert le courrier d'entreprise d'une petite entreprise), la question de l'optimalité n'est pas si aiguë. Cependant, avec nos volumes, l'optimalité devient critique : nous avons donc dû étudier les modes de fonctionnement de l'ensemble du zoo des clients de messagerie accédant au stockage.

3. Nombre de séances simultanées
Selon la norme, le délai d'attente minimum du serveur est de 30 minutes. De plus, un client peut maintenir plusieurs connexions au serveur à la fois (le protocole ne précise pas le nombre maximum de connexions autorisées). En fait, à notre échelle, cela signifie qu’un seul serveur doit gérer de manière optimale des dizaines de milliers de connexions simultanées. Lorsque vous travaillez en mode synchrone, un tel nombre de connexions absorberait simplement toutes les ressources.

Pour résoudre ce problème, j'ai écrit une bibliothèque pour le travail asynchrone, construite sur la base d'epoll déclenché par les bords. Au départ, je me suis donné pour tâche de créer une bibliothèque avec laquelle je pourrais à l'avenir écrire mon propre serveur asynchrone en quelques jours pour résoudre d'autres problèmes en plus d'IMAP ; par conséquent, presque tout le code peut être utilisé pour écrire d’autres services.

4. Incapacité d'identifier de manière unique le client
Notre serveur prend en charge l'extension ID, qui nous permet d'identifier environ la moitié des clients. Malheureusement, l'autre moitié ne connaît pas cette extension (parmi les plus populaires, par exemple Outlook).
Comprendre avec quel client nous travaillons nous permet de contourner ses bugs caractéristiques, de prédire quel sera le modèle de travail au cours d'une session donnée et, en conséquence, d'optimiser le travail. Ceci est critique pour nous, donc si le client ne fournit pas d'identifiant, nous essayons de l'identifier par d'autres moyens (dans le cas d'Outlook, par des balises).
5. Aucune commande pour déplacer les messages
Chez les clients, le mouvement est mis en œuvre par copie + suppression. Nous souhaitons bien sûr qu'une copie de la lettre soit placée dans le dossier souhaité et que l'original soit supprimé et n'encombre pas la corbeille. En revanche, il arrive parfois que l'utilisateur copie lui-même la lettre dans un nouveau dossier puis supprime l'original : dans ce cas, la lettre supprimée doit être placée à la corbeille.
Pour distinguer ces deux cas, après copie, au cours de la même session, nous marquons la lettre avec un drapeau interne spécial. Lorsque l'utilisateur copie lui-même la lettre et supprime l'original, le client met généralement à jour la liste des lettres. Lors de la mise à jour, la case à cocher est automatiquement réinitialisée et le message supprimé finit dans la corbeille. Si la lettre (dans le cadre du déménagement) est supprimée par le client, aucune mise à jour n'a lieu et la lettre marquée du drapeau est définitivement supprimée.

Difficultés liées à l'adaptation du stockage de courrier et des index actuels

1. Identification des messages
Pour travailler sur IMAP, il était nécessaire de prendre en charge deux types d'identifiants de message : un numéro de séquence, qui peut différer d'une session à l'autre, et un numéro unique, qui est stocké pendant toute la durée de vie du message. Les deux identifiants devaient répondre à des critères assez stricts, qui ne correspondaient pas au schéma utilisé par le webmail et le serveur POP3.

Il est plus rationnel de conserver dans la RAM l'ensemble des numéros de séquence, leur correspondance avec les identifiants internes, ainsi que l'ID IMAP. Lors de l'ouverture d'un dossier, nous extrayons du stockage une liste de toutes les lettres, nos identifiants internes, notre identifiant IMAP, les drapeaux et la taille du message - tout ce que nous voulons envoyer sans demandes inutiles.

Nous devons informer le client de tous les changements dans le numéro de séquence au cours d'une même session. Selon la norme, la séquence IMAP ID doit correspondre à la séquence des numéros de séquence. Nous obtiendrons les numéros de séquence en triant la liste des lettres par numéros uniques. Lorsque le client émet une nouvelle commande, nous rouvrons la connexion au stockage, en demandant l'heure des dernières modifications apportées à la box. S'il n'y a eu aucun changement depuis la dernière demande de ce type, nous renvoyons simplement une réponse à la commande. Sinon, nous réinterrogeons la liste des messages dans le dossier et la comparons avec la liste similaire du client. Ensuite, soit nous renvoyons des informations sur les modifications, soit, si le protocole ne permet pas de le faire immédiatement, nous notons que la lettre a été supprimée et attendons le bon moment pour en informer le client.

En raison de cette spécificité - la lettre n'est plus dans la boîte aux lettres, mais le client n'en a pas encore eu connaissance - le client peut demander des données sur la lettre déjà supprimée. De plus, certains d’entre eux rencontraient de graves problèmes s’il n’y avait pas de réponse à leur demande. Pour éviter que le client ne se casse, nous renvoyons des talons en réponse à de telles demandes. Le client reçoit les informations dont il a besoin pour un fonctionnement normal, et lors de la prochaine mise à jour de la liste des lettres (cela se produit généralement immédiatement), il en supprime le message.

2. La nécessité de renvoyer de manière optimale des informations sur la structure MIME du message
Presque tous les clients demandent des informations sur la structure de la lettre. Souvent, lors de la première séance, ils demandent ces informations sur toutes les lettres du dossier en même temps. Analyser une lettre pour chaque demande de ce type serait extrêmement sous-optimal.
Au lieu de cela, nous avons créé un cache de structures MIME. La présence d'un cache nous a permis de surmonter plusieurs difficultés liées aux fonctionnalités d'IMAP - notamment l'absence de modèle standard pour travailler avec le serveur : puisqu'une partie des informations est stockée dans le cache, cela permet de neutraliser la charge associée avec différents modèles de travail client.

Nous mettons actuellement en cache jusqu'à 50 messages. Pourquoi pas 2-3 ? Le fait est que certains clients demandent d'abord la structure de la lettre, puis le corps, et pour plusieurs messages à la fois ; le nombre maximum de lettres dans un tel « paquet » est généralement de 50 pièces.

3. Sortie optimale de parties de la lettre
Souvent, les clients ne demandent que des parties de texte de la lettre, qui peuvent se trouver à la fin du message lui-même. Pour afficher des extraits, les clients peuvent demander des parties de texte provenant de 50 à 200 e-mails à la fois. Vous ne souhaitez pas lire l’intégralité du fichier de message (et traiter 10 Mo d’e-mail pour envoyer 10 Ko de texte) ; utiliser un index pour déterminer la position d'une pièce dans un fichier pour chaque requête serait également coûteux. Dans cette situation, le cache de structure de message est également utile.
Les avantages de cette approche sont particulièrement évidents lorsque le client charge des extraits de plusieurs dizaines de lettres : si nous n'utilisions pas le cache de structure, nous devrions alors parcourir plusieurs mégaoctets et sacrifier la vitesse.

Pour gagner de la place dans nos stockages, les parties base64 sont stockées sous forme décodée à l'intérieur de la lettre : lorsque vous travaillez avec le webmail, cela permet d'envoyer des pièces jointes sans recodage inutile. Il a fallu élaborer un schéma de livraison des pièces prenant en compte cet recodage. Nous avons écrit le transcodage en streaming sur un serveur IMAP. Le cache a également aidé ici - grâce à lui, nous pouvons comprendre sous quelle forme (binaire ou non) un fragment particulier est stocké sans relire la structure.

4. Caractéristiques de certains clients
Certains clients ne sont pas entièrement conformes à la norme RFC : par exemple, les clients Android standards versions 2.2 - 2.3 ne peuvent pas afficher correctement les messages sans renvoyer certains champs facultatifs. La principale difficulté était de déterminer quels champs chacun de ces clients considérait comme obligatoires pour eux-mêmes : il fallait résoudre ce problème par la force brute.

Il a déjà été mentionné ci-dessus que les clients peuvent avoir différentes approches pour supprimer les lettres : certains les déplacent vers la corbeille, d'autres les suppriment immédiatement et définitivement. Cependant, certains clients ne comprennent pas l'extension XLIST standard que nous prenons en charge pour déterminer quel dossier est une corbeille. Au lieu de cela, ils utilisent leur dossier comme poubelle (c'est ainsi que se comporte Sparrow, par exemple).

Outlook se comporte de manière intéressante : lors de la commande de suppression, les lettres ne sont pas déplacées vers la corbeille, mais sont marquées comme barrées, puis supprimées ultérieurement. Il s'est avéré que pour les utilisateurs, cela ressemble à un bug - beaucoup ne comprennent tout simplement pas quoi faire ensuite et comment s'assurer que le client se comporte de la manière habituelle et que les lettres finissent à la poubelle.

Face à une telle diversité, il nous fallait également comprendre empiriquement comment chaque client se comporte et s'adapter à ces options - et de manière à ce que l'utilisateur puisse en être sûr : quel que soit le client pour lequel il travaille, le courrier répondra à ses actions. comme d'habitude et de manière prévisible (dans ce cas, la lettre supprimée finira à la poubelle). Nous avons résolu ce problème en essayant différentes réponses via un serveur proxy de test et en surveillant la réaction du client à chaque option.

Ce que nous avons appris par nous-mêmes : IMAP est une chose plutôt « tentaculaire », avec de nombreuses fonctionnalités historiques acquises en 26 ans, qui sont multipliées par la variété des clients de messagerie. Compte tenu de notre charge de travail, cela conduit au fait qu'il est irrationnel de prendre une solution toute faite et d'essayer de l'adapter à vos besoins : au mieux, la quantité de travail sera la même que si vous développiez vous-même une solution. C'est ainsi que nous avons procédé :)

Victor Starodoub,
Équipe de messagerie Mail.ru



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :