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 et les accents


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut javamail et les accents
    Bonjour,

    Lorsque j'envoi un email les accents ne sont pas bien représentés.

    En fait, dans le "sujet" de l'email pas de problème les accents sont bien là.

    Et bizarre, ce problème n'apparait pas si j'envoie vers une adresse gmail...

    J'ai essayé avec du texte brut, du texte en html...pareil.
    J'ai essayé en forçant l'encodage en UTF-8 avec ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageBodyPart.setContent(emailText.getBytes(StandardCharsets.UTF_8), "text/html");
    Une idée ?

    Merci d'avance.

    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
    65
    66
    67
    68
    69
    70
     
        public static boolean envoiEmail(String emailDest, String sujet, String emailText, String...fichiers){
            boolean result = false;
            String MAILER_VERSION = "JavaMail 1.6.1";
     
            if(fichiers.length > 0){
                for (int i = 0; i < fichiers.length; i++) {
                    Str.println("fichier[" + i + "] = " + fichiers[i]);            
                }
            }
     
            try {
                FileDataSource datasource1;
                DataHandler handler1;
     
                Properties prop = System.getProperties();
                prop.put("mail.smtp.host", Options.serveurSmtp);
     
                prop.setProperty("mail.smtp.auth", "false");
     
                Session session = Session.getDefaultInstance(prop,null);
                session.setDebug(false);
     
                InternetAddress[] internetAddresses = new InternetAddress[1];
                internetAddresses[0] = new InternetAddress(emailDest);
     
                MimeMessage message = new MimeMessage(session);
     
                message.setFrom(new InternetAddress(Options.entreprise.getProEmail(), Options.entreprise.getNom()));
                message.setSender(new InternetAddress(Options.entreprise.getProEmail()));
                message.setRecipients(Message.RecipientType.TO,internetAddresses);
     
                message.setSubject(MimeUtility.encodeText(sujet, "UTF-8", "Q"));
     
                message.setHeader("X-Mailer", MAILER_VERSION);
                message.setSentDate(new Date());
     
                // creates message part
                MimeBodyPart messageBodyPart = new MimeBodyPart();
                messageBodyPart.setContent(emailText, "text/html");
     
                // creates multi-part
                Multipart multipart = new MimeMultipart();
                multipart.addBodyPart(messageBodyPart);
     
                // adds attachments
                for (String fichier : fichiers) {
                    if (fichier.length() > 0) {
                        datasource1 = new FileDataSource(fichier);
                        handler1 = new DataHandler(datasource1);
                        MimeBodyPart attachPart = new MimeBodyPart();
                        attachPart.setDataHandler(handler1);
                        attachPart.setFileName(datasource1.getName());
                        multipart.addBodyPart(attachPart);
                    }
                }
     
                // sets the multi-part as e-mail's content
                message.setContent(multipart);
     
                Transport.send(message);
                result = true;
     
            } catch (MessagingException ex) {
                Str.printlnForcé(ex.getMessage() + "\n\nemailDest = " + emailDest);
            } catch (UnsupportedEncodingException ex) {
                GuiUserCom.erreur(ex);
            }
            return result;
        }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    C'est emailText qui n'est pas bon ? (donc le corps du message)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut
    Oui emailText est le corps du message et s'il contient des accents, ils ne sont pas lisibles...

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    ça n'a peut être rien avoir, mais, regarde comment tu passe le sujet, et comment tu passes ton corps du mail. Tu y verras sans doute une petite différence, non ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A aucun moment tu ne précises l'encodage du corps de ton mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // creates message part
    MimeBodyPart messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setContent(emailText, "text/html");
    Tu peux ajouter l'encodage avec le "content-type", comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageBodyPart.setContent(emailText, "text/html; charset=UTF-8");
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut
    Comme le nez au milieu du visage...

    Grand merci OButterlin

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

Discussions similaires

  1. [FoxPro]Instruction pour enlever les accents ?
    Par Fab-FoxPro dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 02/01/2025, 15h09
  2. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58
  3. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 14h56
  4. les accents et printf
    Par remi77 dans le forum C
    Réponses: 5
    Dernier message: 07/07/2003, 20h53
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

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