Advertisement
Guest User

Untitled

a guest
Oct 25th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.87 KB | None | 0 0
  1. private void sendAlertEMail(EntityPojo entityFromBDD){
  2.         try {
  3.             /** Configuration du mail */
  4.             java.util.Properties prop = System.getProperties();
  5.             prop.put("mail.smtp.host", "smtp.online.net");
  6.             prop.put("mail.smtp.auth", "true");
  7.             prop.put("mail.smtp.starttls.enable", "true");
  8.             prop.put("mail.smtp.port", "587");
  9.  
  10.             /**Permet d'envoyer le mail qd app déployée en ligne */
  11.             prop.put("mail.mime.parameters.strict", "false");
  12.  
  13.             /** Création d'une session avec un authentificateur */
  14.             Authenticator auth = new javax.mail.Authenticator() {
  15.                 @Override
  16.                 protected PasswordAuthentication getPasswordAuthentication() {
  17.                     return new PasswordAuthentication("alerte-sanitaireconnecte@antalios.com", "antalios13");
  18.                 }
  19.             };
  20.  
  21.             boolean toSend = false;
  22.  
  23.             Session session = Session.getInstance(prop, auth);
  24.  
  25.             /** Création d'un nouvel email */
  26.             MimeMessage messageMail = new MimeMessage(session);
  27.  
  28.             /** Création du corps du message */
  29.             String HTMLmessage = "Bonjour, \n\n";
  30.             if(entityFromBDD.getNbMailEnvoye() == 0 )
  31.             {
  32.                 /** Création du sujet */
  33.                 String subject = String.format(
  34.                         "[BS] Alerte nettoyage pour l'entité %s : %s  (Date de l'alerte %s)",
  35.                         entityFromBDD.getDescription(),
  36.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
  37.                         DateToolbox.formatExcel(new Date())
  38.                 );
  39.                 messageMail.setSubject(subject);
  40.  
  41.                 HTMLmessage += String.format(
  42.                         "Le  %s (%s) indique une alerte nettoyage.\n",
  43.                         entityFromBDD.getDescription(),
  44.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
  45.                 );
  46.  
  47.                 toSend = true;
  48.  
  49.             }
  50.             else if (entityFromBDD.getNbMailEnvoye() == 1 ){
  51.                 /** Création du sujet 1er rappel*/
  52.                 String subject = String.format(
  53.                         "[BS] RAPPEL : Alerte nettoyage pour l'entité %s : %s  (Date de l'alerte %s)",
  54.                         entityFromBDD.getDescription(),
  55.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
  56.                         entityFromBDD.getDateDernierEnvoiMail()
  57.                 );
  58.                 messageMail.setSubject(subject);
  59.                 HTMLmessage += String.format(
  60.                         "Le  %s (%s) indique une alerte nettoyage non résolue.\n",
  61.                         entityFromBDD.getDescription(),
  62.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
  63.                 );
  64.  
  65.                 toSend = true;
  66.  
  67.             }
  68.             else if (entityFromBDD.getNbMailEnvoye() == 2){
  69.                 /** Création du sujet 2eme rappel */
  70.                 String subject = String.format(
  71.                         "[BS] RAPPEL : Alerte nettoyage pour l'entité %s: %s (Date de l'alerte %s)",
  72.                         entityFromBDD.getDescription(),
  73.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
  74.                         DateToolbox.formatExcel(new Date(entityFromBDD.getDateDernierEnvoiMail().getMillis() - MAIL_RAPPEL_INTERVAL))
  75.                 );
  76.                 messageMail.setSubject(subject);
  77.                 HTMLmessage += String.format(
  78.                         "Le  %s (%s) indique une alerte nettoyage non résolue après un rappel.\n",
  79.                         entityFromBDD.getDescription(),
  80.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
  81.                 );
  82.  
  83.                 toSend = true;
  84.  
  85.             }
  86.             else if(entityFromBDD.getNbMailEnvoye() == 3){
  87.                 /** Création du sujet 2eme rappel */
  88.                 String subject = String.format(
  89.                         "[BS] Alerte non acquittée pour l'entité %s : %s (Date de l'alerte %s)",
  90.                         entityFromBDD.getDescription(),
  91.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
  92.                         DateToolbox.formatExcel(new Date((entityFromBDD.getDateDernierEnvoiMail().getMillis() - 2* MAIL_RAPPEL_INTERVAL)))
  93.                 );
  94.                 messageMail.setSubject(subject);
  95.                 HTMLmessage += String.format(
  96.                         "Malgré deux Rappels le  %s (%s) indique une alerte nettoyage non résolue.\n",
  97.                         entityFromBDD.getDescription(),
  98.                         GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
  99.                 );
  100.  
  101.                 toSend = true;
  102.  
  103.             }
  104.             else {
  105.                 toSend = false;
  106.             }
  107.  
  108.             Multipart multipart = new MimeMultipart();
  109.             BodyPart messageBodyPart = new MimeBodyPart();
  110.  
  111.             messageBodyPart.setText(HTMLmessage);
  112.             multipart.addBodyPart(messageBodyPart);
  113.  
  114.             /** Création et ajout de la piece jointe */
  115.             messageBodyPart = new MimeBodyPart();
  116.             DataSource source = new FileDataSource("/etc/onet/logo_antalios.jpg");
  117.             messageBodyPart.setDataHandler(new DataHandler(source));
  118.             messageBodyPart.setFileName("logo_antalios.jpg");
  119.             multipart.addBodyPart(messageBodyPart);
  120.  
  121.             /** Ajout des éléments au mail */
  122.             messageMail.setContent(multipart);
  123.  
  124.             /** To decomment */
  125.             GatewayPojo gatewayPojo = GatewayManager.FindGatewayById(entityFromBDD.getId_centrale());
  126.  
  127.             /** Ajout des emails destinataire et envoyeur */
  128.             ArrayList<UserPojo> receivers = new ArrayList<UserPojo>();
  129.             receivers = UserManager.getUsersWhoWantAlertByMail(""+gatewayPojo.getNomClient());
  130.  
  131.             InternetAddress[] internetAddresses = new InternetAddress[receivers.size()];
  132.             int a =0;
  133.  
  134.             for (int i = 0; i < receivers.size(); i++)
  135.             {
  136.                 String adresse_mail = "";
  137.                 try {
  138.                         adresse_mail = receivers.get(i).getAdresseMail();
  139.  
  140.                 } catch(NullPointerException npe) {
  141.                     npe.printStackTrace();
  142.                     adresse_mail = "";
  143.                 }
  144.  
  145.                 if (adresse_mail != "" && adresse_mail != null)
  146.                 {
  147.                     internetAddresses[a] = new InternetAddress(""+receivers.get(i).getAdresseMail());
  148.                     a++;
  149.                 }
  150.                 else {
  151.                     internetAddresses[a] = new InternetAddress("dd@mail.com");
  152.                     a++;
  153.                 }
  154.             }
  155.  
  156.             ArrayList<String> stringAdress = new ArrayList<String>();
  157.  
  158.             for (int e = 0; e < internetAddresses.length; e++)
  159.             {
  160.                 if (!internetAddresses[e].getAddress().equals("dd@mail.com"))
  161.                 {
  162.                     stringAdress.add(internetAddresses[e].getAddress());
  163.                 }
  164.             }
  165.             InternetAddress[] internetAddressesFinal = new InternetAddress[stringAdress.size()];
  166.  
  167.  
  168.             for (int f = 0; f < stringAdress.size(); f++)
  169.             {
  170.                 internetAddressesFinal[f] = new InternetAddress(""+stringAdress.get(f));
  171.             }
  172.  
  173.             /** Si personne n'a demandé d'alerte on ne l'envoie pas */
  174.             if(internetAddressesFinal.length != 0) {
  175.  
  176.                 /**A decommenter pour tests et commenter 6 lignes du dessus*/
  177. //            InternetAddress[] internetAddresses = new InternetAddress[2];
  178. //            internetAddresses[2] = new InternetAddress("cpistoresi@onet.fr");
  179. //            internetAddresses[1] = new InternetAddress("padam@onet.fr");
  180. //            internetAddresses[0] = new InternetAddress("d.aladel@antalios.com");
  181.                 messageMail.addHeader("X-Mailer", "Prunetwork-libs-mail-1.0-SNAPSHOT");
  182.                 messageMail.setFrom(new InternetAddress("alerte-sanitaireconnecte@antalios.com"));
  183.                 messageMail.setRecipients(Message.RecipientType.TO, internetAddressesFinal);
  184.                 Date date = new Date();
  185.                 messageMail.setSentDate(date);
  186.  
  187.                 /** Envoi du mail */
  188.                 if (toSend)
  189.                 {
  190.                     Transport.send(messageMail);
  191.                     System.out.println("mail envoyé");
  192.                 }
  193.             }
  194.         } catch (AddressException e) {
  195.             e.printStackTrace();
  196.         } catch (MessagingException e) {
  197.             e.printStackTrace();
  198.         }
  199.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement