IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[JavaMail] Image


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut [JavaMail] Image
    Bonjour,

    Je suis en train de développer une petite classe où il y a un envoi de mail et le problème est que je n'arrive pas à afficher une image dans le mail envoyé.

    J'obtiens une petite icône avec une croix dans le mail.

    Voici la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message.setContent("<h1>"+subject+"</h1><br></br>quoi<br></br>"+ "<IMG src=\"pages/monimage.jpg\">", "text/html");
    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux créer un message de type MultiPart (message composé de plusieurs parties) et de sous-type "related" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Multipart multipart = new MimeMultipart("related");
    Tu crées ton corps de message comme ça, en précisant une URI pour l'image, comme indiqué en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BodyPart htmlPart = new MimeBodyPart();
    htmlPart.setContent(""<h1>"+subject+"</h1><br></br>quoi<br></br>"+ "<IMG src=\"cid:id-image\">", "text/html");
    
    multipart.addBodyPart(htmlPart);
    Ensuite, tu ajoutes ton image, en tant que pièce jointe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BodyPart imgPart=new MimeBodyPart();
     
    DataSource ds=new FileDataSource("pages/monimage.jpg"); // attention à la résolution du path du fichier image !
    imgPart.setDataHandler(new DataHandler(ds));
    
    //Indication de l'id de l'image
    imgPart.setHeader("Content-ID","id-image"); // l'id de l'image est celui auquel tu fais référence par l'uri dans le corps du message
    
    multipart.addBodyPart(imgPart);
    Et tu affectes ce multipart à ton message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message.setContent(multipart);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    oui ça marche très bien mais le problème c'est que j'ai un dossier pages dans mon application qui contient des images et je voudrais accéder directement à ce dossier sans le chemin c:\\.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     DataSource fds = new FileDataSource
    	          ("C:\\Users\\Moi\\Documents\\Eclipse_Workspace\\WebContent\\images\\accord.jpg");
    Est-ce-qu'on peut remédier à ce problème parce que j'ai essayé sans le c:\\.. et ça marche pas.

    Merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    2 possibilités :

    1) le dossier est un dossier statique, dont le contenu ne change pas (par exemple, des icônes que tu livres avec ton jar)

    2) le dossier est un dossier dynamique, qu'un utilisateur peut remplir avec des images de son choix (peu importe qu'il passe par ton application ou directement par shell, ou explorer, ou autre).

    Dans le cas 1, on inclut habituellement le dossier d'images dans le jar, et on y accède via les méthodes getResource(), ou getResourceAsStream() de la classe Class, ou de la classe ClassLoader. Ces méthodes permettent de résoudre un path vers une resource, relativement à une classe, ou à la racine des packages.

    Dans le cas 2, on met un dossier quelque part : soit ce dossier est à un emplacement fixe connu (par exemple, renseigné par l'utilisateur lors de l'installation de l'application), ou connu relativement à un dossier de base de l'utilisateur (par exemple un sous-dossier créé dans un dossier dont le path est obtenu par System.getProperty("user.home") ou System.getProperty("user.dir") ).
    Soit on démarre l'application dans un dossier de travail, dans lequel on met le dossier d'images, et on peut accèder aux fichiers qui s'y trouvent en indiquant un path relatif au dossier de travail).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Merci pour votre aide je pense que je vais essayer le premier cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Javamail et image embarquée
    Par sly3333 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 12/05/2012, 22h29
  2. [javamail] Envoi de mail avec plusieurs images
    Par RamyBoulet dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 21/09/2009, 11h32
  3. envoi d'images avec javamail
    Par hypothese dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/08/2009, 12h09
  4. [JavaMail] recevoir un mail contenant une image
    Par nicotine002 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 26/08/2006, 12h38
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo