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

ASP.NET Discussion :

Envoie automatique d'emails


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut Envoie automatique d'emails
    salut a tous
    j'aurais besoin d'envoyer des notifications automatiques par email a partir de mon application asp.net , ces notifications seront envoyer comme suit :

    - dans ma base de donnée j'ai une table qui contient des taches avec une date limite pour l’exécution de chaque tache .

    - mon application doit être capable de consulter ces dates limites automatiquement (hebdomadairement on va dire) et envoyer des notifications aux personnes concerné si il y a dépassement de la date limite .

    Voila je voulais savoir si c'est faisable avec la fonction DATABASE MAIL de sql Server 2008 ou est il mieux de créer un service Windows exécutant cette tache !

    merci

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Tu peux très bien développer un petit exécutable qui sera lancé en tâche planifiée. L'avantage est que si plus tard tu souhaites programmer d'autres traitements façon hebdomadaire ou quotidienne, tout sera en place.

    Je ne vois pas trop l'intérêt de mettre en place un service si l'exécution se limitera à quelques secondes une fois par semaine...

    En espérant t'avoir aidé.

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Le problème est que l'intervalle d'envoie doit être configurable et les données de configuration "fréquence d'envoie..." sont stocké dans une BD .

    Est ce faisable avec une petite application ?

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Au temps pour moi, j'avais mal lu ton post.

    Cela dépend maintenant de la fréquence des évènements. Les dates limites de tes tâches dans ta base de données sont exprimées en jour, heure, secondes ?

    Dans le premier cas, un exécutable tournant tous les jours devrait suffire. Il ira lire les tâches, et vérifiera si l'une d'elle a dépassé sa limite pour lancer l'envoi.

    Maintenant si la fréquence est inférieure au jour et qu'il peu y avoir un mail à envoyer toutes les heures ou secondes, là un service qui tourne en continu serait plus indiqué.

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Bonjour
    en fait les dates limites sont exprimées en jour donc l'intervalle d'envoie ne pouura etre inférieure a un jour.
    Maintenant si par exemple l'administrateur configure pour envoyer une notfication chaque 3 jours et non pas chaque jour je fait comment?

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par mazdahmen Voir le message
    j'aurais besoin d'envoyer des notifications automatiques par email a partir de mon application asp.net
    Une application web ne tourne pas en tâche de fond. Elle ne répond qu'à des requêtes. Elle ne peut pas détecter toute seule qu'il est l'heure qu'un évènement se produise. De plus, il ne serait pas logique de faire cette vérification à chaque fois que la page d'accueil est chargée par exemple.

    Le plus simple serait de
    1. Créer une page web dédiée à la réalisation de la tâche
    2. Utiliser le planificateur de tâche de Windows pour appeler la page au moment que tu veux.
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Immobilis, je pense qu'on est d'accord là dessus

    Si tes dates sont exprimées en jours, alors tu n'as qu'à faire tourner ton batch toutes les nuits par exemple (ou tôt le matin).

    Si jamais l'admin fait passer la fréquence à trois jours, deux solutions :
    • Ca tourne toujours tous les jours, mais deux jours sur trois il n'y aura pas d'envoi
    • Tu changes la plannification de ta tâche et la met sur "tous les trois jours".

    Bref, vu tes besoins, rien de compliqué.

    En espérant t'avoir aidé.

  8. #8
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Salut
    Tu changes la planification de ta tâche et la met sur "tous les trois jours".
    Ca ne sera pas possible vu que je n'aurais pas toujours accès au serveur , sinon la deuxième solution me semble convenable et j'ai pensé à ceci :

    - dans la table des taches j'ajoute une colonne pour contenir la date du dernier envoie de notification pour cette tache , comme ça l'application comparera à chaque execution la date du dernier envoie avec la date d'aujourdhui , fera la différence et si la difference est >= à l'intervalle definie par l'admin il ya envoie de notification !

    c'est la solution qui m'est venu a l'esprit , sinon si vous avez d'autres idées je suis preneur .

    -Autre chose vous me conseillez de créer une application console ou une page web ?

    et merci pour les réponses

  9. #9
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Pour moi, ça n'a rien à faire dans une page web. Mais ça n'engage que moi, rien ne t'empêche de le faire. Je te conseillerais plutôt une application console bien séparer de ton application web.

  10. #10
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Pour moi, ça n'a rien à faire dans une page web. Mais ça n'engage que moi, rien ne t'empêche de le faire. Je te conseillerais plutôt une application console bien séparer de ton application web.
    Je suis aussi d'accord. Même si cela se fait souvent, les "batchs" ne devraient pas être exécutés par une page web mais localement (console, winform) avec un compte Windows:
    • Le web gère mal les temps d'exécution très longs.
    • La page web ne fait que rendre compte d'un traitement qui se passe sur le serveur. C'est un lien inutile qui monopolise le client.
    • Il faut que la page s'exécute dans un pool d'application différent afin de ne pas consommer les ressources du site principal.
    • Il faut parfois élever les privilèges du compte IUSR_XXX pour réaliser certaines opérations (création de fichiers). Cela créé des failles de sécurité.
    Malgré tout. Une page web présente des avantages. C'est rapide à mettre en place surtout si tu n'as pas accès au serveur.
    Citation Envoyé par mazdahmen
    Ca ne sera pas possible vu que je n'aurais pas toujours accès au serveur
    Tu ne peux pas ouvrir une session Windows dessus? Peux-tu nous donner plus de renseignements sur ton hébergement stp (dédié/mutualisé/privé, OS)?
    Dans l'idéal, ce serait un mix des deux:
    • Des programmes console
    • Une gestion/planification web qui programme le planificateur des tâches Windows
    Du boulot en perspective. Pour bien faire:
    Créer une solution avec 5 projets:
    1. Application web
    2. Console
    3. Modèle de données
    4. Couche métier
    5. Accès données
    Si tu fais du LINQ, 4 projets:
    1. Application web
    2. Console
    3. Couche métier
    4. Accès données + Modèle

    Ainsi, si tu te débrouilles bien, tu devrais pouvoir utiliser ton travail aussi bien pour le web que pour la console.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. Envoi automatique d'emails depuis Access 2003
    Par Wisefool dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/10/2008, 13h41
  2. envoi automatique d'email
    Par hermine dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/08/2007, 17h18
  3. [Mail] Envoi automatique d'emails
    Par mariogarcia dans le forum Langage
    Réponses: 29
    Dernier message: 16/09/2006, 14h12
  4. envoi automatique d'email
    Par zorba49 dans le forum ASP
    Réponses: 3
    Dernier message: 20/12/2005, 13h43
  5. envoi automatique d'email
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/12/2005, 15h39

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