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

Collection et Stream Java Discussion :

JavaMail et les charsets


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut JavaMail et les charsets
    Si quelqu'un a la gentillesse de m'expliquer comment cela fonctionne avec javamail par exemple et m'indiquer l'utilité des méthodes car malgré la doc je suis plutôt perdu.

    Cordialement

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    Voici une classe qui permet d'envoyer un mail à partir d'un mail gmail...
    Il suffit de mettre ton mail gmail et ton password et ça marche tout seul..
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    Bonjour khoufouq,

    Merci pour cette class, qui est très intéressante car je cherchais aussi pour faire un envoie depuis gmail. Cependant la n'est pas mon problème pour faire un envoie de mail, ça je sais faire. Mon problème réside dans les charsets et leur conversion.

    Je m'explique j'ai développé un bout de code pour envoyé un mail sur une machine Windows. Tout fonctîonnait bien et je faisais uniquement des setText etc et la j'avais bien les accents mais dès lors que j'ai déployé mon Ear sur une machine qui je suppose dois avoir un charset différent, la je perds tous les accents et tt. J'ai tenté beaucoup de chose et finis par trouvé. Malheureusement maintenant je me heurte à un autre problème avec un form-data ( pour envoie avec PJ ) et ce que j'avais fais pour mon précédent form ne suffit pas.

    Alors ma question est la suivante comment marche c'est foutu charset, car je n'y comprends rien ...

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 29
    Par défaut
    As-tu essayé ça :
    props.put("mail.mime.charset", "UTF-8");

    Si tu mets de l'UTF-8 t'es tranquille après je pense...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    Salut,

    Ah non je ne connais pas cette variable. Si je comprends bien c'est pour forcer le charset sur le le Mail c'est bien ca ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    Re-Bonjour,

    Alors j'ai tenté d'utilisé cela en remodifiant un peu mon code :

    boolean isMultipart = ServletFileUpload.isMultipartContent(request);


    if(isMultipart){
    String bodytxt="";
    String from="";
    String to="";
    String cc=null;
    String bcc=null;
    String subject="";
    String itemid = null;
    boolean attachmentFile = false;

    try{
    // Create a factory for disk-based file items
    FileItemFactory factory = new DiskFileItemFactory();

    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);

    // Parse the request
    List items = upload.parseRequest(request);
    Iterator it = items.iterator();
    while(it.hasNext()){
    FileItem item = (FileItem) it.next();
    if (item.isFormField()) {
    if("body".equals(item.getFieldName()))
    bodytxt=item.getString();
    else if("from".equals(item.getFieldName()))
    from=item.getString();
    else if("to".equals(item.getFieldName()))
    to=item.getString();
    else if("cc".equals(item.getFieldName()))
    cc=item.getString();
    else if("bcc".equals(item.getFieldName()))
    bcc=item.getString();
    else if("subject".equals(item.getFieldName()))
    subject=item.getString();
    else if("itemid".equals(item.getFieldName()))
    itemid=item.getString();
    }
    else{

    }

    System.out.println("é "+item.getFieldName());
    }


    Properties props = new Properties();
    props.put("mail.smtp.host","172.30.68.80");
    props.put("mail.smtp.port","25");
    props.put("mail.mime.charset","UTF-8");

    Session session = Session.getInstance(props,null);
    session.setDebug(true);
    MimeMessage msg = new MimeMessage(session);

    try{
    msg.setFrom(new InternetAddress(from));
    } catch (AddressException e) {
    request.setAttribute("error","1");
    request.getRequestDispatcher("mail.jsp").forward(request, response);

    }
    InternetAddress[] tos = null;
    try{
    tos = InternetAddress.parse(to);
    }catch (AddressException e) {
    request.setAttribute("error","2");
    request.getRequestDispatcher("mail.jsp").forward(request, response);

    }
    if(tos==null){
    request.setAttribute("error","2");
    request.getRequestDispatcher("mail.jsp").forward(request, response);
    }

    msg.setRecipients(Message.RecipientType.TO,tos);

    try{
    if(cc != null)
    {
    InternetAddress[] ccs =
    InternetAddress.parse(cc);
    msg.setRecipients(Message.RecipientType.CC,ccs);
    }
    }catch (AddressException e) {
    request.setAttribute("error","3");
    request.getRequestDispatcher("mail.jsp").forward(request, response);

    }
    try{
    if(bcc != null)
    {
    InternetAddress[] ccs = InternetAddress.parse(bcc);
    msg.setRecipients(Message.RecipientType.BCC,ccs);
    }
    }catch (AddressException e) {
    request.setAttribute("error","4");
    request.getRequestDispatcher("mail.jsp").forward(request, response);

    }
    msg.setSubject(subject);
    msg.setSentDate(new Date());

    if(!attachmentFile){
    msg.setText(new String(bodytxt.getBytes(),"UTF-8"),"UTF-8");
    // msg.setText(bodytxt);
    }
    else
    {
    // BodyPart bodyencode = new MimeBodyPart();
    // MimeBodyPart body = new MimeBodyPart(),
    // attachment = (MimeBodyPart)fields.get("attachment");
    // body.setText(bodytxt);
    //
    // MimeMultipart multipart = new MimeMultipart();
    // MimeMultipart multipartencode = new MimeMultipart();
    // multipart.addBodyPart(body);
    // multipart.addBodyPart(attachment);
    // multipartencode.addBodyPart(bodyencode);
    // multipartencode.addBodyPart(attachment);
    // msg.setContent(multipart);
    }

    Transport.send(msg);
    }
    catch (FileUploadException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    catch(SecurityException e ){
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    Et sur ma machine ( en Windows ) cela fonctionne parfaitement mais sur le serveur ça fait toujours pareil ...

    Log sur le serveur

    [2/16/11 10:01:18:370 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "HELP", arg ""
    [2/16/11 10:01:18:370 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "SIZE", arg "51200000"
    [2/16/11 10:01:18:371 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "PIPELINING", arg ""
    [2/16/11 10:01:18:367 CET] 00000033 SystemOut O DEBUG SMTP: use8bit false
    [2/16/11 10:01:18:367 CET] 00000033 SystemOut O MAIL FROM:<xxxxxxxxx>
    [2/16/11 10:01:18:367 CET] 00000033 SystemOut O 250 xxxxxxxxx
    ... Sender OK
    [2/16/11 10:01:18:372 CET] 00000033 SystemOut O RCPT TO:<xxxxxxx>
    [2/16/11 10:01:18:378 CET] 00000033 SystemOut O 250 xxxxxxxx... Recipient OK
    [2/16/11 10:01:18:378 CET] 00000033 SystemOut O DEBUG SMTP: Verified Addresses
    [2/16/11 10:01:18:378 CET] 00000033 SystemOut O DEBUG SMTP: xxxxxxxxx
    [2/16/11 10:01:18:378 CET] 00000033 SystemOut O DATA
    [2/16/11 10:01:18:375 CET] 00000033 SystemOut O 354 Enter message, end with "." on a line by itself
    [2/16/11 10:01:18:375 CET] 00000033 SystemOut O Message-ID: <1792436950.1297846878365.JavaMail.root@xxxxxxxxx>
    Date: Wed, 16 Feb 2011 10:01:18 +0100 (CET)
    From: xxxxxxxxxxx
    To: xxxxxxxxxx
    Subject: =?ANSI_X3.4-1968?B?UmU6ID8/Pz8/Pz8/Pz8/Pz8/Pz8/Pw==?=
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 7bit

    ??????????????????????
    .
    [2/16/11 10:01:18:381 CET] 00000033 SystemOut O 250 Message accepted for delivery
    [2/16/11 10:01:18:382 CET] 00000033 SystemOut O QUIT

Discussions similaires

  1. [Javamail] Récupérer les pieces jointes
    Par mrfirefunk dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 05/03/2012, 01h21
  2. Réponses: 0
    Dernier message: 05/06/2009, 12h04
  3. dissertation sur les charsets
    Par menthol34 dans le forum Débuter
    Réponses: 0
    Dernier message: 12/02/2009, 21h01
  4. HSSF et les Charset
    Par arasium dans le forum Documents
    Réponses: 1
    Dernier message: 07/07/2006, 16h53
  5. Besoin d'explications sur les charset
    Par EGPMS dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 03/02/2006, 15h38

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