Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void sendAlertEMail(EntityPojo entityFromBDD){
- try {
- /** Configuration du mail */
- java.util.Properties prop = System.getProperties();
- prop.put("mail.smtp.host", "smtp.online.net");
- prop.put("mail.smtp.auth", "true");
- prop.put("mail.smtp.starttls.enable", "true");
- prop.put("mail.smtp.port", "587");
- /**Permet d'envoyer le mail qd app déployée en ligne */
- prop.put("mail.mime.parameters.strict", "false");
- /** Création d'une session avec un authentificateur */
- Authenticator auth = new javax.mail.Authenticator() {
- @Override
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication("alerte-sanitaireconnecte@antalios.com", "antalios13");
- }
- };
- boolean toSend = false;
- Session session = Session.getInstance(prop, auth);
- /** Création d'un nouvel email */
- MimeMessage messageMail = new MimeMessage(session);
- /** Création du corps du message */
- String HTMLmessage = "Bonjour, \n\n";
- if(entityFromBDD.getNbMailEnvoye() == 0 )
- {
- /** Création du sujet */
- String subject = String.format(
- "[BS] Alerte nettoyage pour l'entité %s : %s (Date de l'alerte %s)",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
- DateToolbox.formatExcel(new Date())
- );
- messageMail.setSubject(subject);
- HTMLmessage += String.format(
- "Le %s (%s) indique une alerte nettoyage.\n",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
- );
- toSend = true;
- }
- else if (entityFromBDD.getNbMailEnvoye() == 1 ){
- /** Création du sujet 1er rappel*/
- String subject = String.format(
- "[BS] RAPPEL : Alerte nettoyage pour l'entité %s : %s (Date de l'alerte %s)",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
- entityFromBDD.getDateDernierEnvoiMail()
- );
- messageMail.setSubject(subject);
- HTMLmessage += String.format(
- "Le %s (%s) indique une alerte nettoyage non résolue.\n",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
- );
- toSend = true;
- }
- else if (entityFromBDD.getNbMailEnvoye() == 2){
- /** Création du sujet 2eme rappel */
- String subject = String.format(
- "[BS] RAPPEL : Alerte nettoyage pour l'entité %s: %s (Date de l'alerte %s)",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
- DateToolbox.formatExcel(new Date(entityFromBDD.getDateDernierEnvoiMail().getMillis() - MAIL_RAPPEL_INTERVAL))
- );
- messageMail.setSubject(subject);
- HTMLmessage += String.format(
- "Le %s (%s) indique une alerte nettoyage non résolue après un rappel.\n",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
- );
- toSend = true;
- }
- else if(entityFromBDD.getNbMailEnvoye() == 3){
- /** Création du sujet 2eme rappel */
- String subject = String.format(
- "[BS] Alerte non acquittée pour l'entité %s : %s (Date de l'alerte %s)",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement(),
- DateToolbox.formatExcel(new Date((entityFromBDD.getDateDernierEnvoiMail().getMillis() - 2* MAIL_RAPPEL_INTERVAL)))
- );
- messageMail.setSubject(subject);
- HTMLmessage += String.format(
- "Malgré deux Rappels le %s (%s) indique une alerte nettoyage non résolue.\n",
- entityFromBDD.getDescription(),
- GatewayManager.FindGatewayById(entityFromBDD.getId_centrale()).getEmplacement()
- );
- toSend = true;
- }
- else {
- toSend = false;
- }
- Multipart multipart = new MimeMultipart();
- BodyPart messageBodyPart = new MimeBodyPart();
- messageBodyPart.setText(HTMLmessage);
- multipart.addBodyPart(messageBodyPart);
- /** Création et ajout de la piece jointe */
- messageBodyPart = new MimeBodyPart();
- DataSource source = new FileDataSource("/etc/onet/logo_antalios.jpg");
- messageBodyPart.setDataHandler(new DataHandler(source));
- messageBodyPart.setFileName("logo_antalios.jpg");
- multipart.addBodyPart(messageBodyPart);
- /** Ajout des éléments au mail */
- messageMail.setContent(multipart);
- /** To decomment */
- GatewayPojo gatewayPojo = GatewayManager.FindGatewayById(entityFromBDD.getId_centrale());
- /** Ajout des emails destinataire et envoyeur */
- ArrayList<UserPojo> receivers = new ArrayList<UserPojo>();
- receivers = UserManager.getUsersWhoWantAlertByMail(""+gatewayPojo.getNomClient());
- InternetAddress[] internetAddresses = new InternetAddress[receivers.size()];
- int a =0;
- for (int i = 0; i < receivers.size(); i++)
- {
- String adresse_mail = "";
- try {
- adresse_mail = receivers.get(i).getAdresseMail();
- } catch(NullPointerException npe) {
- npe.printStackTrace();
- adresse_mail = "";
- }
- if (adresse_mail != "" && adresse_mail != null)
- {
- internetAddresses[a] = new InternetAddress(""+receivers.get(i).getAdresseMail());
- a++;
- }
- else {
- internetAddresses[a] = new InternetAddress("dd@mail.com");
- a++;
- }
- }
- ArrayList<String> stringAdress = new ArrayList<String>();
- for (int e = 0; e < internetAddresses.length; e++)
- {
- if (!internetAddresses[e].getAddress().equals("dd@mail.com"))
- {
- stringAdress.add(internetAddresses[e].getAddress());
- }
- }
- InternetAddress[] internetAddressesFinal = new InternetAddress[stringAdress.size()];
- for (int f = 0; f < stringAdress.size(); f++)
- {
- internetAddressesFinal[f] = new InternetAddress(""+stringAdress.get(f));
- }
- /** Si personne n'a demandé d'alerte on ne l'envoie pas */
- if(internetAddressesFinal.length != 0) {
- /**A decommenter pour tests et commenter 6 lignes du dessus*/
- // InternetAddress[] internetAddresses = new InternetAddress[2];
- // internetAddresses[2] = new InternetAddress("cpistoresi@onet.fr");
- // internetAddresses[1] = new InternetAddress("padam@onet.fr");
- // internetAddresses[0] = new InternetAddress("d.aladel@antalios.com");
- messageMail.addHeader("X-Mailer", "Prunetwork-libs-mail-1.0-SNAPSHOT");
- messageMail.setFrom(new InternetAddress("alerte-sanitaireconnecte@antalios.com"));
- messageMail.setRecipients(Message.RecipientType.TO, internetAddressesFinal);
- Date date = new Date();
- messageMail.setSentDate(date);
- /** Envoi du mail */
- if (toSend)
- {
- Transport.send(messageMail);
- System.out.println("mail envoyé");
- }
- }
- } catch (AddressException e) {
- e.printStackTrace();
- } catch (MessagingException e) {
- e.printStackTrace();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement