2 Programmation Java



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

Interfaces graphiques avec l API Swing

Développement Logiciel

Programmer en JAVA. par Tama

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

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

Corrigé des exercices sur les références

Introduction au langage Java

Projet de programmation (IK3) : TP n 1 Correction

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

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

Package Java.util Classe générique

Tutoriel d installation de Hibernate avec Eclipse

Principe de la messagerie électronique

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

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

OpenPaaS Le réseau social d'entreprise

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

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

RMI le langage Java XII-1 JMF

Desktop Intégration. Rémi Forax

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

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

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

Synchro et Threads Java TM

TP Programmation Java / JDBC / Oracle

Java Licence professionnelle CISII,

Remote Method Invocation (RMI)

Programmation Par Objets

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Cours 2 : programmation des interfaces graphiques

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

Remote Method Invocation Les classes implémentant Serializable

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

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

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

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Android et le Cloud Computing

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

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

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

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

Création d une application JEE

Solutions du chapitre 4

Java DataBaseConnectivity

Threads. Threads. USTL routier 1

Un ordonnanceur stupide

Programmation par les Objets en Java

Auto-évaluation Programmation en Java

Calcul Parallèle. Cours 5 - JAVA RMI

Chapitre 10. Les interfaces Comparable et Comparator 1

Java - la plateforme

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

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

PROGRAMMATION PAR OBJETS

Cours 1: Java et les objets

TD/TP PAC - Programmation n 3

Une introduction à Java

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

Applet pour visualiser les variables «automate» notifiées

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

INITIATION AU LANGAGE JAVA

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

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

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Java 1.5 : principales nouveautés

TD/TP PAC - Programmation n 3

Objets et Programmation. origine des langages orientés-objet

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

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Programme Compte bancaire (code)

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

Java Licence Professionnelle CISII,

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

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Introduction : les processus. Introduction : les threads. Plan

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

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Flux de données Lecture/Ecriture Fichiers

2. Comprendre les définitions de classes

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Programmation Réseau SSH et TLS (aka SSL)

Gestion distribuée (par sockets) de banque en Java

Design patterns. Design patterns - définition. Design patterns - avantages

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

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

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

PROCÉDURE D AIDE AU PARAMÉTRAGE

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Programmation Objet Java Correction

ACTIVITÉ DE PROGRAMMATION

TP1 : Initiation à Java et Eclipse

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

Transcription:

Université Paris 7 M2 II Protocole Internet TP3 Mail Pour ce TP vous exécuterez vos commandes de la machine ouindose. Attention aux fausses manoeuvres, elles peuvent endommager votre mail sur les machines de l'ufr. 1 Protocole SMTP 1. Le protocole SMTP est dénit dans la RFC 821 (mise à jour dans la RFC 2821). Le format des messages est spécié 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érication (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 chiers 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 à l'utilisateur etudiant de ouindose. 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@dugrandnord.com", "Pere Noel"); // recepteur du message (RCPT TO:) Address receveur = new InternetAddress("etudiant"); // positionnement de la propriete mail.host au serveur local Properties props = new Properties(); props.put("mail.host", "ouindose.ufr-info-p7.jussieu.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 votre courrier. 3. Le programme suivant permet de lire le courrier de etudiant avec le mot de passe motcache sur conejo.ufr-info-p7.jussieu.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 = "conejo.ufr-info-p7.jussieu.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(); Modier ce programme pour n'acher que le sujet, l'émetteur et la date d'envoi. 4. Authentication 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.authenticator). Quand une session dispose d'un tel objet, quand on réalise la connexion, on appelle la méthode getpasswordauthentificator(). A titre indicatif, on propose une sous classe de Authentificator: 4

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 ache une boite de dialogue permettant de saisir l'identication et le mot de passe de l'utilisateur qui désire connaitre les entête de ces messages. 6