/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Mails; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.LinkedList; import java.util.logging.Level; import java.util.logging.Logger; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Part; public class Middle { public Middle(){ } public static void sendMessage(Messages message){ Smtp smtp = new Smtp(); smtp.init(); smtp.newMessage(); String from = message.getFrom(); if(from != null){ smtp.setDestinateur(message.getFrom()); } smtp.setDestinataire(message.getTo()); smtp.setObjet(message.getSujet()); if(message.getNbPieceJointes() == 0){ smtp.setMessage(message.getMessage()); }else{ smtp.addPartMessage(message.getMessage()); for(PieceJointes piece : message.getPiecesJointes()){ if(piece.isByte()){ smtp.addPartFichier(piece.getBytes(), piece.getName()); }else{ smtp.addPartFichier(piece.getFile()); } } } smtp.sendIt(); } public static LinkedList<Messages> receiveMessages(){ LinkedList<Messages> listeMessage = new LinkedList<>(); Pop3 pop3 = new Pop3(); pop3.init(); pop3.initFolder("INBOX"); Message[] messages = pop3.receiveMessage(); buildListe(messages, listeMessage); return listeMessage; } private static void buildListe(Message[] messages, LinkedList<Messages> listeMessage) { try { for(Message message : messages){ Messages nouveauMessage = new Messages(); Object temp = message.getFrom(); if(temp != null){ nouveauMessage.setFrom(""+message.getFrom()[0]); } nouveauMessage.setSujet(message.getSubject()); if(message.getSentDate() != null){ nouveauMessage.setSentDate(new SimpleDateFormat("dd/MM/yyyy hh:mm").format(message.getSentDate())); } if(message.getContentType().contains("multipart")){ Multipart multipart = (Multipart)message.getContent(); int nbPart = multipart.getCount(); for(int i=0; i<nbPart; i++){ Part part = multipart.getBodyPart(i); String attachment = part.getDisposition(); if(part.isMimeType("text/plain")){ nouveauMessage.setMessage((String)part.getContent()); } if(attachment != null && attachment.equalsIgnoreCase(Part.ATTACHMENT)){ InputStream is = part.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int buffer; while((buffer = is.read()) != -1){ baos.write(buffer); } baos.flush(); String nameFile = part.getFileName(); nouveauMessage.addPieceJointes(nameFile, baos.toByteArray()); baos.close(); } } }else{ nouveauMessage.setMessage((String)message.getContent()); } listeMessage.add(nouveauMessage); } } catch (MessagingException ex) { Logger.getLogger(Middle.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Middle.class.getName()).log(Level.SEVERE, null, ex); } } }