IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[Servlet]Envoi automatique de mails d'alerte


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut [Servlet]Envoi automatique de mails d'alerte
    Je travaille actuellement sur une application qui assure la gestion d'un support technique et je doit développer un module qui va permettre de relancer automatiquement par mail les clients dont les contrats de support arrive à échéance.
    Mon application est de type servlet/JSP.
    Je ne vois pas trop comment gérer cet envoi de mail automatique.
    Je pensais mettre en place une application qui regarderait chaque matin dans la base de données afin de récupérer les contrats arrivant à échéance et de relancer le client associé.
    Si quelqu'un a deja travaillé sur ce genre de chose ou a une petite idée...
    Mon boss insiste bien sur le fait que l'envoi doit être totalement automatique et qu'à la limite les alertes soit remontées graphiquement dans mon appli mais pas déclenchées à partir de l'appli par un utilisateur.
    Bref je sais pas trop comment bien gérer ca. Faites moi part de vos idées svp.

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut Vous avez pas d'idées ?
    Ca ne vous inspire pas ?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut
    Ok donc finalement je vais passer par une planification de tâche sous windows qui lance un .bat qui va executer une requête HTTP qui lancera une action sur ma servlet. euh je serais tenté de vs dire merci mais non c pas utile :-)

  4. #4
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut Il y a une solution
    Solution fournie par J. Gaspéri

    Il faut ecrire une servlet dont la configuration du fichier web.xml est :
    [FONT=Arial]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [/FONT]
    [FONT=Arial]     <!-- periode en seconde apres laquelle le process est lancé -->[/FONT]
    [FONT=Arial]     <param-name>alertPeriod</param-name>[/FONT]
    [FONT=Arial]     <param-value>86400</param-value>
    </init-param>[/FONT]
    [FONT=Arial]
    [/FONT]

    Attention de bien configurer l'application pour une execution automatique
    de la servlet au démarrage de l'application ou du containeur


    Cette servlet appelle un instance d'une classe qui dérive de java.util.TimerTask qui effectue l'opération voulue.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    package org.petitpasdelune.timer;
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.sql.DataSource;
    public class MailReportTask extends java.util.TimerTask {
    /*
     Les parametres pouir faire le rapport
    */
     DataSource ds;
     
     
    /* 
     Constructeurs
    */
    public MailReportTask(HttpServletRequest request, Action action) {
      this.ds = action.getDataSource();
      /*...*/
    }
     
    /* Interface TimerTask */
    public void run(){
    /*  recuperation des  des données
         en passant par un DataSource ou une autre méthode */
     
     while(resultSet.next()) {
    /* envoie des mails avec javax.mail ... */
        }
     
    }
     
    }
    On apelle ce timer à partir de la servlet de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import javax.management.timer;
    ...
    MailReportTask mailReportRask = new MailReportTask(request, this);
    [FONT=Arial]Timer mailTimer = new Timer(true);
    long period = 86400000; /*24 h en millisecondes*/
    [/FONT]
    [FONT=Arial]mailTimer.addNotification("type","message",mailReportTask,new Date(),period);[/FONT]
    
    ...
    code approximatif

    Je n'ai jamais tester cette approche.

    PPDL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire pour un envoi automatique de mail dans access
    Par chpierrot dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/06/2008, 13h45
  2. [Wamp] envoi automatique de mails en php
    Par arezki76 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/12/2007, 22h32
  3. [Mail] Envoi automatique de mail & génération pdf
    Par moabomotal dans le forum Langage
    Réponses: 1
    Dernier message: 01/06/2006, 08h46
  4. Envoi automatique de mails d'alerte
    Par spk4ever dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/05/2006, 11h11
  5. [Mail] envoi automatique de mail
    Par calitom dans le forum Langage
    Réponses: 17
    Dernier message: 04/04/2006, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo