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

API standards et tierces Java Discussion :

[JavaMail] Pb avec accent dans sujet et corps de l'email


Sujet :

API standards et tierces Java

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut [JavaMail] Pb avec accent dans sujet et corps de l'email
    Bonjour,

    j'utilise JavaMail pour envoyer des emails depuis une application Java. L'envoi se fait sans problème, mais les caractères accentués ne sont pas interprétés. Ce qui est plutot genant.

    Quelqu'un peut il m'aider ?

    Merci

    extrait de mon code source:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    //host smtp adress
    Properties props=System.getProperties();//new Properties();
    props.put("gjhgjhg","lkjhkljhkjh");
     
    //definition de l'entete
    Session session=Session.getDefaultInstance(props,null);
    session.setDebug(debug);
     
    try
    {	
    //creation message
    Message message=new MimeMessage(session);
     
    message.setFrom(new InternetAddress(expediteurE));
    InternetAddress[] address = {new InternetAddress(destinataireE)};
    message.setRecipients(Message.RecipientType.TO, address);
     
    message.setSubject(objetE);
     
    //remplissage du message
    MimeBodyPart mbp1=new MimeBodyPart();
    mbp1.setText(messageE);
     
    //creation 2eme message part
    if(!jfileE.equals("")) 
    {		
    //attache fichier
    MimeBodyPart mbp2=new MimeBodyPart();
    FileDataSource fds=new FileDataSource(jfileE);
    mbp2.setDataHandler(new DataHandler(fds));
    mbp2.setFileName(fds.getName());
     
    //create the Multipart and add its parts to it
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1);
    mp.addBodyPart(mbp2);
     
    // add the Multipart to the message
    message.setContent(mp);
    }
    else
    {
    //create the Multipart and add its parts to it
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1);
     
    // add the Multipart to the message
    message.setContent(mp);
    }
     
    // set the Date: header
    //Date dateJ=new Date();
    //message.setSentDate(dateJ);
     
    // send the message
    Transport.send(message);
     
    }
    catch (MessagingException mex) 
    {	mex.printStackTrace();
    	Exception ex = null;
    	if ((ex = mex.getNextException()) != null) {
    			ex.printStackTrace();}
    }

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 34
    Points
    34
    Par défaut
    Les caractères ne sont pas interprêtés...par qui? Tu peux donner un exemple s'il te plait! (et utilise les balises code, c'est plus lisible)

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    il y a de forte chance que cela vient de l'encodage de l'email (comme pour les fichiers txt).

    Car en local (Tomcat sous window) les accents sont interpréré (le destinaire voit les accents).

    Sur le serveur (Tomcat sous linux) les accents ne sont plus interprete (le meme destinaire a des ? en place d'accent).

    J'ai deja eu ce probleme avec l'ecriture d'un fichier , en precisant l'encodage (caractere europeen) j'avais resolu le pb.

    On doit donc pouvoir faire la même chose avec l'email, mais comment t'elle est ma question.

    Merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 34
    Points
    34
    Par défaut
    Pour commencer, le sujet du mail ne peut comporter que des caractères ASCII US sur 7 bits. Si tu veux mettre des accents, tu dois les encoder avant. Inversement, quand tu reçois un mail dont le sujet comporte des accents tu dois au préalable le décoder pour les avoir en clair.
    Pour le corps du mail il faut préciser l'encodage à utiliser.

    C'est d'ailleurs indiqué clairement dans la javadoc de la classe MimeMessage:
    RFC 822 header fields must contain only US-ASCII characters. MIME allows non ASCII characters to be present in certain portions of certain headers, by encoding those characters. RFC 2047 specifies the rules for doing this. The MimeUtility class provided in this package can be used to to achieve this.
    Utilise les methodes encodeText et decodeText de la classe MimeUtility pour arriver à tes fins.

    MimeMessage
    MimeUtility

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Salut,

    désolé mais suite à une coupure de notre reseau je ne viens de voir le post que maintenant, merci pour ta reponse, mais aurais tu un exple à me fournir ?

    Merci

  6. #6
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    bonjour,
    pour le message texte : essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MimeBodyPart mbp1=new MimeBodyPart(); 
    mbp1.setText(messageE); 
    mbp1.setHeader("Content-Type", "text/plain;charset=\"iso-8859-1\""); 
    mbp1.setHeader("Content-Transfert-Encoding", "8bit");
    cela devrait permettre d'informer le serveur sur l'encodage à utiliser

  7. #7
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Merci, j'essai quand l'ensemble de nos serveurs seront redemarrés, je vous tiend au courrant.

  8. #8
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Excellant, j'ai mes accents, cool Merci à tous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/06/2008, 10h52
  2. Réponses: 2
    Dernier message: 31/01/2008, 15h02
  3. Comment obtenir "édition" (avec accent) dans la bibliographie ?
    Par lionel50 dans le forum Bibliographies - Index - Glossaires
    Réponses: 2
    Dernier message: 23/11/2006, 11h50
  4. Problème avec accent dans fichier
    Par shaun_the_sheep dans le forum Administration système
    Réponses: 3
    Dernier message: 19/11/2006, 20h46
  5. Requête avec accent dans navicat
    Par Marconico dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/11/2006, 12h31

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