TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.



Documents pareils
Interfaces graphiques avec l API Swing

Création d un service web avec NetBeans 5.5 et SJAS 9

Programmer en JAVA. par Tama

Développement Logiciel

Principe de la messagerie électronique

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Corrigé des exercices sur les références

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

L3 informatique TP n o 2 : Les applications réseau

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Utilisation de Jakarta Tomcat

La base de données XML exist. A. Belaïd

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Tutoriel d installation de Hibernate avec Eclipse

Cours 1: Java et les objets

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Introduction au langage Java

RMI le langage Java XII-1 JMF

Création d une application JEE

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Projet de programmation (IK3) : TP n 1 Correction

Couche application. La couche application est la plus élevée du modèle de référence.

Java Licence professionnelle CISII,

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

PORTAIL INTERNET DECLARATIF. Configuration du client Mail de MICROSOFT VISTA

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Package Java.util Classe générique

JOnAS Day 5.1. Outils de développements

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Dis papa, c est quoi un bus logiciel réparti?

Synchro et Threads Java TM

Programmation Par Objets

Serveur d'archivage 2007 Installation et utilisation de la BD exist

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TP Programmation Java / JDBC / Oracle

Configuration des logiciels de messagerie

Remote Method Invocation (RMI)

Desktop Intégration. Rémi Forax

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

A. Architecture du serveur Tomcat 6

Bases Java - Eclipse / Netbeans

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

PROCÉDURE D AIDE AU PARAMÉTRAGE

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Application Web et J2EE

Architecture Orientée Service, JSON et API REST

Tp 1 correction. Structures de données (IF2)

OpenPaaS Le réseau social d'entreprise

Le langage JAVA G. Baulieu Institut de Physique Nucléaire de Lyon Septembre 2009

Volet de visualisation

Développement des Systèmes d Information

Cours 2 : programmation des interfaces graphiques

Remote Method Invocation Les classes implémentant Serializable

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

TP1 : Initiation à Java et Eclipse

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Traitement de données

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Web Tier : déploiement de servlets

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Applet pour visualiser les variables «automate» notifiées

Java DataBaseConnectivity

Solutions du chapitre 4

Cours CCNA 1. Exercices

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Auto-évaluation Programmation en Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Cisco Certified Network Associate

ACTIVITÉ DE PROGRAMMATION

Un ordonnanceur stupide

Threads. Threads. USTL routier 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Une introduction à Java

Java - la plateforme

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Calcul Parallèle. Cours 5 - JAVA RMI

(Fig. 1 :assistant connexion Internet)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

TD/TP PAC - Programmation n 3

Utilisation d objets : String et ArrayList

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Java Naming and Directory Interface

1. Installation d'un serveur d'application JBoss:

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

SOAP Concepts Application à Glassfish

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programmation par les Objets en Java

Transcription:

Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans la RFC 821 (mise à jour dans la RFC 2821). Le format des messages est spécifié dans la RFC 822. Consultez ces RFC et répondez aux questions suivantes: Quel port utilise smtp? A quoi servent les commandes HELO, MAIL FROM:, RCPT TO:, DATA? 2. Par la commande telnet, envoyez un mail à un utilisateur de ouindose. 3. Y a t il une vérification (et si oui de quel ordre), du domaine transmis par HELO? de l identité de l émetteur du message? 2 Programmation Java Java propose une JavaMail API pour manipuler le courrier. 1. Ajouter à vos fichiers les Java Archive File activation.jar et mail.jar (à charger depuis java.sun.com/products/javamail) 2. En utilisant les classes de javax.mail.*, le programme suivant permet d envoyer un mail à cd@liafa.jussieu.fr 1

import java.util.*; import javax.mail.address; import javax.mail.message; import javax.mail.session; import javax.mail.transport; // les 2 classes suivantes sont utilisées pour // le courrier electronique Internet import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage; public class envoimailsimple { public static void main(string[] args) { try { // emetteur du message (MAIL FROM:) Address emetteur = new InternetAddress("papi@europe.gouv.fr", "Pere Noel"); // recepteur du message (RCPT TO:), Address receveur = new InternetAddress("cd@liafa.jussieu.fr"); // positionnement de la propriete mail.host au serveur local Properties props = new Properties(); props.put("mail.host", "ouindose.informatique.univ-paris-diderot.fr") // demarrage d une session de courrier Session mailconnection = Session.getInstance(props, null); // Construction du message à envoyer par Internet Message msg = new MimeMessage(mailConnection); msg.setfrom(emetteur); msg.setrecipient(message.recipienttype.to, receveur); msg.setsubject("bientot Noel"); msg.setcontent(" M as tu envoye ta commande?\n j attends", "text/plain"); //Emission du message Transport.send(msg); 2

catch (Exception ex) { ex.printstacktrace(); Consultez les classes Message et MimeMessage et enrichissez le courrier que vous vous enverrez. 3. Le programme suivant permet de lire le courrier de etudiant avec le mot de passe motcache sur ouindose.informatique.univ-paris-diderot.fr où se trouve un serveur pop3. import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; public class pop3client { public static void main(string[] args) { Properties props = new Properties(); String host = "ouindose.informatique.univ-paris_diderot.fr"; //ligne 0 String username = "etudiant"; String password = "motcache"; String provider = "pop3"; try { // Connection au serveur POP3 //ligne 1 Session session = Session.getDefaultInstance(props, null); Store store = session.getstore(provider); //ligne 2 store.connect(host, username, password); 3

// Ouverture de la boite aux lettres Folder inbox = store.getfolder("inbox"); if (inbox == null) { System.out.println("No INBOX"); System.exit(1); inbox.open(folder.read_only); // Lire les messages Message[] messages = inbox.getmessages(); for (int i = 0; i < messages.length; i++) { System.out.println("------------ Message " + (i+1) + " ------------"); messages[i].writeto(system.out); // Fermer la connexion en laissant les fichiers // sur le serveur inbox.close(false); store.close(); catch (Exception ex) { ex.printstacktrace(); Modifier ce programme pour n afficher que le sujet, l émetteur et la date d envoi. 4. Authentification Il n est pas souhaitable que le mot de passe se trouve dans ce programme. L API Javamail propose une classe abstraite Authentificator (javax.mail.authentificator). Quand une session dispose d un tel objet, quand on réalise la connexion, on appelle getpasswordauthentificator(). A titre indicatif, 4

on propose une sous classe de Authentificator: MailAuthentificator qui s utiliserait ainsi partir du programme précédent: // on enlève la ligne 0 // au lieu de la ligne 1 Session session = Session.getDefaultInstance(props, new MailAuthenticator("etudiant"));... //au lieu de la ligne 2 store.connect(host, null, null); Classe MailAuthentificator: import javax.mail.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MailAuthenticator extends Authenticator { private JDialog passworddialog = new JDialog(new JFrame(), true); private JLabel passwordlabel = new JLabel("Password: "); private String username; private JPasswordField passwordfield = new JPasswordField(20); private JButton okbutton = new JButton("OK"); public MailAuthenticator(String u) { username = new String(u); Container pane = passworddialog.getcontentpane(); pane.setlayout(new GridLayout(2, 1)); JPanel p = new JPanel(); p.add(passwordlabel); p.add(passwordfield); p.add(okbutton); pane.add(p); passworddialog.pack(); ActionListener al = new HideDialog(); okbutton.addactionlistener(al); passwordfield.addactionlistener(al); 5

class HideDialog implements ActionListener { public void actionperformed(actionevent e) { passworddialog.hide(); public PasswordAuthentication getpasswordauthentication() { passworddialog.show(); String password = new String(passwordField.getPassword()); passwordfield.settext(""); return new PasswordAuthentication(username, password); Réécrire le programme de l exercice précédent de telle sorte qu il affiche une boite de dialogue permettant de saisir l identification et le mot de passe de l utilisateur qui désire connaître seulement les entêtes de ses messages. 3 Servlet 3.1 Installation d un serveur Apache Tomcat 1. Depuis le site http://tomcat.apache.org/ télécharger et installer la version de tomcat compatible avec la version de java. Soit $CATALINA_HOME le catalogue racine de votre installation. 2. Démarrer votre serveur en exécutant le script shell $CATALINA_HOME/bin/startup.sh (Pour l arrêter il faudra exécuter: $CATALINA_HOME/bin/shutdown.sh). 3. En utilisant votre navigateur préféré, utiliser votre serveur par http://localhost:8080 (le port est modifiable par le descripteur de contexte $CATALINA_HOME/conf/server.xml). Exécuter les servlets données en exemple. 4. A l aide de votre environnement de programmation préférée (eclipse ou netbeans) créer un fichier index.jsp. (Votre environnement de programmation gére automiquement le lancement de tomcat sur le port 8084 par défaut, il gère aussi le catalogue WEB-INF contenant un fichier web.xml (descripteur de 6

déploiement) décrivant les associations, un catalogue classes où se trouvent les classes et un catalogue lib où se trouvent les bibliothèques). 5. Ecrire un fichier moi.html décrivant votre Curriculum vitae, rendre ce fichier appelable depuis votre fichier index.jsp. 6. Créer une servlet NewS permettant d afficher le protocole utilisé et le nombre de visiteurs de la servlet, rendre cette servlet appelable depuis votre fichier index.jsp. 7