Email piece jointe

gislaino Messages postés 4 Date d'inscription vendredi 6 septembre 2013 Statut Membre Dernière intervention 27 décembre 2014 - Modifié par BunoCS le 20/09/2013 à 15:59
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 - 20 sept. 2013 à 16:00
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
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
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
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.

1 réponse

BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
20 sept. 2013 à 16:00
Coucou,
Je ne fais que passer. J'ai rajouter les balises "code", 4e icone au-dessus de la zone de texte. Merci d'y penser la prochaine fois. ;)
0
Rejoignez-nous