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 :

Erreur d'encodage de mail avec javax


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut Erreur d'encodage de mail avec javax
    Bonjour,

    J'ai une application Java qui récupère des péramètres URL en provenance d'une autre application non Java. Certains de ces paramètres contiennent des accents (on a du mal à l'éviter en français). Mon idée était donc de décoder ces paramètres et les envoyer par mail grâce à la fonction Javax. Le problème c'est qu'à récéption du mail, tous les cactères un peu spéciaux tels que é, è, à... ne s'affichent pas correctement.
    Mon idée a donc été d'encoder le contenu du mail en UTF-8 mais sans aucun résultalt.
    Le code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Properties p = new Properties();
    p.put("mail.transport.protocol", "smtp");
    p.put("mail.smtp.host", "x.x.x.x");
    p.put("mail.smtp.port", "y");
    Session session = Session.getInstance(p);
    session.setDebug(false);
     
    //	  Define email properties
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress("blablabla[at]domain.com"));
     
    message.addRecipient(Message.RecipientType.TO, new InternetAddress( "adresse_mail");	
     
    // Define email subject
    message.setSubject("my subject", "UTF-8");
     
    //	 define email content
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    String content = wdContext.currentContextElement().getLeMail(); // code qui me permet de recuperer les donnes a inserer dans le mail
    String content2 = URLDecoder.decode( content, "UTF-8" ); // je decode les donnees passees en URL pour afficher les accents
     
    messageBodyPart.setText(content2);
     
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);
    message.setContent(multipart);
     
    //	Send message
    Transport.send(message);
    Voyez-vous un quelconque problème dans tout ça ?

    Merci pour votre aide.

    T

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    En pratique, content contient quoi?

  3. #3
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut
    En pratique, content contient le contenu du mail. Content est une variable dans laquelle je vais importer les données de type String enregistrées dans un contexte. Ce sont ces données qui sont formatés avec des retour chariots et insérées dans content. Ces données peuvent contenir des accents, dont le formatage n'est pas restitué de manière correcte.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on peut avoir un exemple? Parce que là je ne vois pas vraiment pourquoi tu le fait passer dans URLDecode. C'est fait pour des urls, pas du texte brut cette méthode.

  5. #5
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut
    Par exemple, dans la zone de saisie de ma première application, je saisi le texte suivant:
    éèçà

    Dans mon application Java je récupère le texte suivant:
    comentaire relevé: '����

    Et dans me mail reçu j'obtiens les mêmes caractères.... Il y a donc un problème d'encodage. MAis comment savoir si ça vient de mon programme Java ou bien de l'autre application (pour laquelle je n'ai pas accès au code source...) ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    déjà, urldécode dans ce genre de cas ne va te servir à rien. Urldecode, ca transforme ceci %E9 en é (si ico 8859-1), bref les %XX sont transformés.

    Dans ton cas, je suggère de commencer par regarder ce qu'il y a dans wdContext.currentContextElement().getLeMail() (de préférence avec une console de debug eclipse ou netbean, les console de sortie pure texte est system.out.println ayant tendance à poser parfois de problème d'encoding eux-même. A mon avis ton problème est à chercher dans le code de "getLeMail". Ton code d'envoi en lui même (si on retire ce urldecode) m'a l'air correct.

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

Discussions similaires

  1. [AC-2007] Envoi mail avec cdoSendmail: erreur de transport
    Par tAKAmAkA dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/12/2018, 12h04
  2. [Configuration] Erreur lors d'envoie de mail avec PHP
    Par ostie127 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 05/02/2008, 18h35
  3. [PHPMailer] Erreur lors d'un envoi d'un mail avec pièce jointe à destination de gmail
    Par arezki76 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 14/08/2007, 18h18
  4. Problème avec javax/mail
    Par mahhour dans le forum NetBeans
    Réponses: 1
    Dernier message: 18/07/2007, 13h12
  5. [Mail] Envoyer un mail avec retour d'erreur
    Par phpaide dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2006, 15h49

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