Soyez le premier à donner votre avis sur cette source.
Vue 9 116 fois - Téléchargée 2 326 fois
package javamail; import entity.Abonnement; import entity.ChargeCompte; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import session.AbonnementFacade; public class JavaMail { public JavaMail() { } public void sendMail(String to, String subject, String messsage) { Properties props = new Properties(); props.put("mail.smtp.host", "mail.dom.cc"); Session session = Session.getInstance(props, null); try { MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("service.client@slc.dz")); msg.setRecipients(Message.RecipientType.TO, to); //msg.setRecipients(Message.RecipientType.CC, CC_LIST); //msg.setRecipients(Message.RecipientType.BCC, BCC_LIST); msg.setSubject(subject); msg.setSentDate(new Date()); msg.setText(messsage, "utf-8", "html"); Transport.send(msg); } catch (MessagingException mex) { System.out.println("send failed, exception: " + mex); } } public void mailRappelFinAbonnement() { AbonnementFacade abonnementFacade = new AbonnementFacade(); List<ChargeCompte> listMailChargeClientPourRappelEtablierFacture = abonnementFacade.getListMailChargeClient(); for (ChargeCompte chargeCompte : listMailChargeClientPourRappelEtablierFacture) { if (!chargeCompte.getAbonnementsList().isEmpty()) { String msg = "Bonjour " + chargeCompte.getPrenom() + "<br/>"; String j = ""; for (Abonnement abonnement : chargeCompte.getAbonnementsList()) { j += "<tr>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + abonnement.getNomClient() + "</td>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + abonnement.getContact() + "</td>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + abonnement.getEmailClient() + "</td>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + new SimpleDateFormat("dd/MM/YYYY").format(abonnement.getDateDebut()) + "</td>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + new SimpleDateFormat("dd/MM/YYYY").format(abonnement.getDateFin()) + "</td>" + "<td bgcolor=\"#FFFFFF\" valign=\"top\" align=\"left\">" + abonnement.getReste() + "</td>" + "</tr>"; } msg += "Les abonnenements des clients suivants toucheront a leurs fin dans quelques jours. Veuillez leurs préparer les factures pour les prochains abonnements" + "<br/>"; msg += "Merci" + "<br/><br/><br/>"; msg += "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#333333\">"; msg += "<tr bgcolor=\"#0acff1\">"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">Client</font></strong></td>"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">Contact</font></strong></td>"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">E-mail</font></strong></td>"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">Date debut</font></strong></td>"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">Date fin</font></strong></td>"; msg += "<td width=\"30%\"><strong><font color=\"#FFFFFF\">Jours restant avant fin d'abonnement</font></strong></td>"; msg += "</tr>"; msg += j; msg += "</table>"; sendMail(chargeCompte.getEmail(), "", msg); System.out.println(msg); } } } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here new JavaMail().mailRappelFinAbonnement(); } } package entity; import java.util.Date; public class Abonnement { private int reste; private int idAbonnement; private int idClient; private Date dateDebut; private Date dateFin; private int etatAbonnement; private String nomClient; private String emailClient; private String contact; public String getContact() { return contact; } public void setContact(String contact) { this.contact = contact; } public Date getDateDebut() { return dateDebut; } public void setDateDebut(Date dateDebut) { this.dateDebut = dateDebut; } public Date getDateFin() { return dateFin; } public void setDateFin(Date dateFin) { this.dateFin = dateFin; } public String getEmailClient() { return emailClient; } public void setEmailClient(String emailClient) { this.emailClient = emailClient; } public int getEtatAbonnement() { return etatAbonnement; } public void setEtatAbonnement(int etatAbonnement) { this.etatAbonnement = etatAbonnement; } public int getIdAbonnement() { return idAbonnement; } public void setIdAbonnement(int idAbonnement) { this.idAbonnement = idAbonnement; } public int getIdClient() { return idClient; } public void setIdClient(int idClient) { this.idClient = idClient; } public String getNomClient() { return nomClient; } public void setNomClient(String nomClient) { this.nomClient = nomClient; } public int getReste() { return reste; } public void setReste(int reste) { this.reste = reste; } public Abonnement(int reste, int idAbonnement, int idClient, Date dateDebut, Date dateFin, int etatAbonnement, String nomClient, String emailClient, String contact) { this.reste = reste; this.idAbonnement = idAbonnement; this.idClient = idClient; this.dateDebut = dateDebut; this.dateFin = dateFin; this.etatAbonnement = etatAbonnement; this.nomClient = nomClient; this.emailClient = emailClient; this.contact = contact; } } package entity; import java.util.List; public class ChargeCompte { private String nom; private String prenom; private String email; private String tel; private List<Abonnement> abonnementsList; public List<Abonnement> getAbonnementsList() { return abonnementsList; } public void setAbonnementsList(List<Abonnement> abonnementsList) { this.abonnementsList = abonnementsList; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPreom(String preom) { this.prenom = preom; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public ChargeCompte(String nom, String preom, String email, String tel) { this.nom = nom; this.prenom = preom; this.email = email; this.tel = tel; } public ChargeCompte(String nom, String preom, String email, String tel, List<Abonnement> abonnementsList) { this.nom = nom; this.prenom = preom; this.email = email; this.tel = tel; this.abonnementsList = abonnementsList; } } package session; import entity.Abonnement; import entity.ChargeCompte; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class AbonnementFacade extends AbstractSQL { public AbonnementFacade() { } public List<Abonnement> getListClient(int idContact) { List<Abonnement> lcs = new ArrayList<Abonnement>(); String query = "SELECT DATEDIFF(a.date_fin,CURDATE()) as reste, a.id_abonnement, a.id_client, a.date_debut, a.date_fin, a.etat_abonnement, c.id , c.Nom , c.Email , c.Contact "; query += "FROM abonnement a JOIN clients c ON c.id = a.id_client JOIN abonnement_contact ac ON ac.id_abonnement = a.id_abonnement "; query += "WHERE ac.id_contatct = " + idContact+ " AND ("; query += "DATE_ADD( CURDATE( ) , INTERVAL 15 DAY ) = date_fin "; query += "OR DATE_ADD( CURDATE( ) , INTERVAL 10 DAY ) = date_fin "; query += "OR DATE_ADD( CURDATE( ) , INTERVAL 5 DAY ) = date_fin "; query += "OR DATE_ADD( CURDATE( ) , INTERVAL 2 DAY ) = date_fin "; query += "OR DATE_ADD( CURDATE( ) , INTERVAL 1 DAY ) = date_fin "; query += "OR DATE_ADD( CURDATE( ) , INTERVAL 0 DAY ) = date_fin "; query += ") "; if (connect()) { try { ResultSet rs = execResult(query); if (rs != null) { while (rs.next()) { lcs.add(new Abonnement(rs.getInt("reste"), rs.getInt("id_abonnement"), rs.getInt("id_client"), rs.getDate("date_debut"), rs.getDate("date_fin"), rs.getInt("etat_abonnement"), rs.getString("Nom"), rs.getString("Email"), rs.getString("Contact"))); } } } catch (SQLException ex) { } } else { System.out.println("Mysql connection failed !!!"); } close(); return lcs; } public List<ChargeCompte> getListMailChargeClient(){ List<ChargeCompte> lcs = new ArrayList<ChargeCompte>(); String query = "SELECT id_contatct , Nom , Prenom , Portable , Email "; query += "FROM abonnement_contact a "; query += "JOIN utilisateurs u ON a.id_contatct = u.id "; query += "GROUP BY a.id_contatct "; if (connect()) { try { ResultSet rs = execResult(query); if (rs != null) { while (rs.next()) { lcs.add(new ChargeCompte(rs.getString("Nom"), rs.getString("Prenom"), rs.getString("Email"), rs.getString("Portable"), getListClient(rs.getInt("id_contatct")))); } } } catch (SQLException ex) { } } else { System.out.println("Mysql connection failed !!!"); } close(); return lcs; } } package session; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class AbstractSQL { private String dbURL = "jdbc:mysql://localhost:3306/abonnement_db"; private String driverClass = "com.mysql.jdbc.Driver"; private String serverName = "localhost"; private String portNumber = "3306"; private String databaseName = "abonnement"; private String user = "root"; private String password = "root"; private java.sql.Connection dbConnect = null; private java.sql.Statement dbStatement = null; public Boolean connect() { try { Class.forName(driverClass).newInstance(); this.dbConnect = DriverManager.getConnection(dbURL, this.user, this.password); this.dbStatement = this.dbConnect.createStatement(); return true; } catch (SQLException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } catch (InstantiationException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } return false; } /** * Executer une requete SQL * @param sql * @return resultat de la requete */ public ResultSet execResult(String sql) { try { ResultSet rs = this.dbStatement.executeQuery(sql); return rs; } catch (SQLException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } return null; } public void exec(String sql){ try { this.dbStatement.executeUpdate(sql); } catch (SQLException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } } /** * Fermer la connexion au serveur de DB */ public void close() { try { this.dbStatement.close(); this.dbConnect.close(); this.dbConnect.close(); } catch (SQLException ex) { Logger.getLogger(AbstractSQL.class.getName()).log(Level.SEVERE, null, ex); } } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.