slt à tous cela fait plusieurs jours que j'essaie d'envoyer des messages avec pièces jointes sans succès, j'ai longtemps cherché sur le net et maintenant je me tourne vers vous. C'est vraiment urgent, j'utilise jsp et servlet, et pour l'upload j'utilise common-file-upload 1.3.

voici mon code

...........class d'envoi d'email et piece jointe

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
 
private  void envoi_email(String to,String cc,String subject,String body, String attachment) {
 
try {
 
Properties props = System.getProperties();
 
String login="monadresse@gmail.com";
 
String password="monpassword";
 
props.setProperty("mail.host", "smtp.gmail.com");
 
props.setProperty("mail.smtp.port", "587");
 
props.setProperty("mail.smtp.auth", "true");
 
props.setProperty("mail.smtp.starttls.enable", "true");
 
props.put("mail.smtp.ssl.trust","smtp.gmail.com");
 
Authenticator auth = new gest_email_p_jointe.SMTPAuthenticator(login, password);
 
Session session1 = Session.getInstance(props, auth);
 
Message msg = new MimeMessage(session1);
 
msg.setFrom(new InternetAddress("madresse@gmail.com"));
 
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
 
msg.setSubject(subject);
 
BodyPart messageBodyPart = new MimeBodyPart();
 
messageBodyPart.setText(body);
 
 Multipart multipart = new MimeMultipart();
 
 multipart.addBodyPart(messageBodyPart);
 
 FileDataSource fds = new FileDataSource(attachment);
 
 messageBodyPart = new MimeBodyPart();
 
 messageBodyPart.setDataHandler(new DataHandler(fds));
 
 multipart.addBodyPart(messageBodyPart);
 
 msg.setContent(multipart);
 
Transport.send(msg);
 
} catch (Exception ex) { ex.getMessage(); 
 
}
 
}
..........class authentification
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
 
private class SMTPAuthenticator extends Authenticator {
 
        private PasswordAuthentication authentication;
 
        public SMTPAuthenticator(String login, String password) {
 
            authentication = new PasswordAuthentication(login, password);
 
        }
 
        @Override
 
        protected PasswordAuthentication getPasswordAuthentication() {
 
            return authentication;
 
        }
 
    }
...................ma servlet
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
 
public class gest_email_p_jointe extends HttpServlet{
     private static final long serialVersionUID = 1L;
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          requete_newsletter req_news=new requete_newsletter();
        boolean isMultipart = ServletFileUpload.isMultipartContent(req);
                requete_uploade req_up= new requete_uploade();
               if (isMultipart) {
                   FileItemFactory factory = new DiskFileItemFactory();
                   ServletFileUpload upload = new ServletFileUpload(factory);
                   try {
                       List /* FileItem */ items = upload.parseRequest(req);
                       Iterator iterator = items.iterator();
                       int i=0;
                       while (iterator.hasNext()) {
                           FileItem item = (FileItem) iterator.next();
                           if (!item.isFormField()) {
                               String fileName = item.getName();
                               String root = getServletContext().getRealPath("/"); 
                               File path = new File(root + "/uploads");
                               if (!path.exists()) {
                                   boolean status = path.mkdirs();
                               }
                           File uploadedFile = new File(path + "/" + fileName);
                           while(uploadedFile.exists()){
                               ResultSet result= req_news.envoi_news();
            while(result.next()){
                              gest_email_p_jointe pj=new gest_email_p_jointe();
              pj.envoi_email(result.getString("email"), null, ,value,uploadedFile.getAbsolutePath());
                                i=i+1;
                           System.out.println(uploadedFile.getAbsolutePath());
                           req.setAttribute("img",fileName);
                           item.write(uploadedFile);
                           req.setAttribute("image",uploadedFile.getAbsolutePath());
            }
            }
                       }
                          else{
                               String nom=item.getFieldName();
                               String value=item.getString();          
                              ResultSet result= req_news.envoi_news();
            while(result.next()){
                              gest_email_p_jointe pj=new gest_email_p_jointe();
              pj.envoi_email(result.getString("email"), null,value,value,null);
              getServletContext().getRequestDispatcher("/newjsp.jsp")
                             .forward(req, resp);
                       }
                   }catch (FileUploadException e) {
                           e.printStackTrace();
                           } catch (Exception e) {
                               e.printStackTrace();
                               }
                   }
                getServletContext().getRequestDispatcher("/newjsp.jsp")
                             .forward(req, resp);
    }
NB: l'email va , on recoit la pièce jointe mais le message n'est pas déchiffrable et l'email vient plusieurs fois
là je vous ai tout donné pour que vous puissiez m'aider au mieux, je compte vraiment sur vous ou si vous avez une autre méthode je suis preneur.