• Aucun résultat trouvé

Lescommandesdebases: Introduction TPn 8ProtocoleSMTPenJAVA Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2011-2012,2 semestre

N/A
N/A
Protected

Academic year: 2022

Partager "Lescommandesdebases: Introduction TPn 8ProtocoleSMTPenJAVA Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2011-2012,2 semestre"

Copied!
2
0
0

Texte intégral

(1)

Universit´ e Paris Diderot – Paris 7 Programmation r´ eseau L3 Informatique Ann´ ee 2011-2012, 2

`eme

semestre

TP n

8

Protocole SMTP en JAVA

Introduction

SMTP pour ”SIMPLE MAIL TRANSFER PROTOCOL” d´efinit les r`egles ` a suivre par qu’un Email soit transmis, d’un ordinateur client (qui veut envoyer un Email) ` a un serveur (qui se charge de envoyer le mail au destinataire). L’en- voie de Email est bas´e sur le principe suivant : un client SMTP fait une requˆete d’exp´edition d’Email que le serveur SMTP accepte. Ce serveur peut-ˆetre la des- tination finale ou peut n’ˆetre qu’un interm´ediaire. Les commandes SMTP sont g´en´er´ees par le client SMTP et sont destin´ees au serveur SMTP. A chaque ´etape le serveur envoie une r´eponse pour signaler si la commande a ´et´e ex´ecut´ee correcte- ment.

La proc´edure classique d’envoi de Email :

1. Client SMTP : Envoi de la commande MAIL indiquant qui envoie l’Email (remarquez qu’il est tout ` a fait possible de vous faire passer pour un autre).

2. Serveur SMTP : Si le serveur peut accepter des Email, il r´epond OK.

3. Client SMTP : Envoi de la commande RCPT indiquant ` a qui l’Email est destin´e.

4. Serveur SMTP : Si le serveur accepte un Email avec cette adresse de desti- nataire, il r´epond encore OK. Sinon, il r´epond avec un code de rejet mais la transaction n’est pas rejet´ee au complet, simplement ce destinataire.

5. Client SMTP : ´ Eventuellement, le client envoie d’autres adresses Email.

6. Client SMTP : Envoi de la commande DATA pour indiquer que le client va envoyer le contenu du mail. Pour marquer la fin de l’Email, le client enverra une s´equence sp´eciale de caract`eres. (. sur une ligne vide)

7. Serveur SMTP : Renvoie un OK s’il y a bien re¸cu le Email.

Les commandes de bases :

– Commande HELO : est utilis´ee pour, ouvrir la connexion entre le client et le serveur et d’autre part, pour identifier la machine client aupr`es du serveur SMTP.

Syntaxe : HELO HostName

1

(2)

– Commande MAIL : indique au serveur de Mail qu’une nouvelle transaction vient de commencer. Cette information permet d’identifier l’exp´editeur de l’Email.

Syntaxe : MAIL SP FROM : Expediteur

– Commande RCPT : un destinataire de l’Email. Si le destinataire est ac- cept´e par le serveur, le serveur renvoie le code 250. Il est possible d’avoir plusieurs destinataires pour un mˆeme Email, pour cela, il suffit de r´ep´eter cette commande autant de fois que n´ecessaire.

Syntaxe : RCPT SP TO: Destinataire

– Commande DATA : indique que toutes les informations qui suivront feront partie du corps du message et ceci jusqu’`a la s´equence de caract`eres qui mettra fin au corps du message. Le serveur renvoie 354 comme r´eponse(s) interm´ediaire(s), ceci correspond ` a un OK, un deuxi`eme OK sera donn´e apr`es la s´equence de fin du corps du message. Le corps du message peut contenir les champs suivants : Date :, Subject :, To :, Cc : ,From :

Syntaxe : DATA

– Commande QUIT : Permet de clˆ oturer la session courante et de fermer les voies de communication entre le client et le serveur. Cette commande renvoie un OK avec le code 221.

Syntaxe : QUIT

Remarque : SP correspond au s´eparateur espace.

Exercice 1

[Client SMTP]

Ecrivez un programme Java jmailer qui ´

1. se connecte au service smtp du serveur ”lucien”, 2. envoie un courrier ´electronique

3. lit et affiche les r´eponses du serveur (une r´eponse d’une ligne par ”ordre”).

N’oubliez pas de traiter les codes de retour attendus et d’afficher un message d’erreur s’ils ne correspondent pas au bon comportement.

2

Références

Documents relatifs

Pour cela le client demande la d´efinition d’un mot au serveur et celui-ci lui renvoie le texte obtenu par l’appel ` a l’utilitaire dict. Si dict ne trouve pas de d´efinition,

Modi- fiez votre serveur pour que apr`es avoir v´erifi´e que le chemin de la requˆete com- mence par ”/” et ne contient pas la chaˆıne ”/../” 1 , il retourne au client le

Lancez la commande nc avec l’option -l 8080, cela ouvre un serveur sur votre machine locale sur le port 8080.. Tapez une ligne dans

Les hints prennent aussi le forme d’une structure addrinfo : vous pouvez indiquer des restrictions sur le type de socket que vous souhaitez utiliser (si vous n’avez aucune

Pour cela vous pouvez utiliser la commande telnet (usage : telnet machine service o` u service peut ˆetre soit le num´ero de service soit le nom du service)1. D´eterminez le

Dans ce protocole, les informations binaires sont en g´en´eral cod´ees en paquets, et envoy´ees sur le r´eseau, l’octet de poids le plus fort en premier, c’est-` a-dire selon le

Ecrivez un programme Java ´ jdaytime qui se connecte au service daytime d’une machine donn´ ee en param` etre et r´ ecup` ere la date pour l’afficher ` a l’´ ecran.. Exercice

L’id´ee est la suivante : un client producteur envoie au serveur une chaˆıne de caract`eres qu’il aura re¸cu par l’entr´ee standard (le clavier), le serveur stocke alors