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

Développement SQL Server Discussion :

Envoi d'une demande par email à un serveur sql server


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut Envoi d'une demande par email à un serveur sql server
    Bonjour à tous,

    Pour faire simple, ça serait vraiment extra si je pouvais envoyer un email à mon serveur sql ou sur une adresse spécifique et ma base SQL SERVER me retournerait un rapport sous forme excel en pièce jointe.

    Exemple :
    J'envoi un email avec en objet <demande-001> et hop, quelques secondes plus tard, je reçois sur mon email, un fichier excel en pièce jointe avec la liste des articles du client, venant de mon serveur sql.

    Merci de votre aide.

    A+
    Laurent

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    C'est possible, voyez database mail.

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    merci de votre réponse rapide.

    Je suis entrain de regarder mais je ne trouve rien sur une demande à partir d'un envoi d'email.
    Envoyer des rapports à partir d'un trigger ou d'une planification, je sais deja plus ou moins le faire.

    Là, ma question est vraiment de savoir comment envoyer une demande par email au serveur et avoir une réponse avec un joli rapport sur mon email en retour ?

  4. #4
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Il n'est pas possible de configurer un serveur POP depuis SQL SERVER. Il est donc impossible à SQL SERVER de façon autonome d'aller récupérer son courrier sur un serveur email. Mais on peut via un outil externe à SQL SERVER scruter le serveur POP et envoyer une alerte à SQL SERVER qui à son tour peut répondre à la demande.
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Effectivement SQL Server n'a pas une telle fonctionnalité.

    Il y avait bien à l'époque de SQL Server 2000 Microsoft English Query qui se basait sur cette idée d'envoyer une demande (sémantique) à SQL Server et SQL Server répondait par un résultat .. mais la fonctionnalité n'a pas été maintenue.

    Vous pouvez également utilisé Service broker qui entre dans ce schéma de fonctionnement : J'envoi un message dans une file d'attente et SQL Server traite cette file d'attente ..

    ++

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par AITOZ Voir le message
    Bonjour à tous,

    Pour faire simple, ça serait vraiment extra si je pouvais envoyer un email à mon serveur sql ou sur une adresse spécifique et ma base SQL SERVER me retournerait un rapport sous forme excel en pièce jointe.

    Exemple :
    J'envoi un email avec en objet <demande-001> et hop, quelques secondes plus tard, je reçois sur mon email, un fichier excel en pièce jointe avec la liste des articles du client, venant de mon serveur sql.
    Comme déjà dit par mikedavem et zinzineti, ce n'est pas directement possible. Le plus simple ici est de passer par un composant de workflow avec un flux lancé à la réception d'un mail, qui envoie une requête à Sql Server, recupére le résultat et renvoi le tout dans un mail à l'expéditeur.

    La Workflow Fundation de Microsoft peut gérer assez facilement ce genre de chose avec un minimum de programmation.

  7. #7
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Comme déjà dit par SqlPro et zinzineti
    Où ca SQLpro ?

    ++

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Où ca SQLpro ?

    ++
    Toutes mes excuses.

    Remplacer SqlPro by mikedavem. J'édite.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Bonsoir,

    Merci à tous pour vos réponses.

    Je continu a chercher une solution.
    J'ai pourtant eu une piste avec xp_readmail !?
    Quand je lis les explications Microsoft, ils ont l'air de dire que c'est possible.
    Mais pour le moment je n'ai pas trouvé.

    J'ai configuré un compte mail sur sql et je peux envoyer des emails via xp_sendmail.

    il y a la table sysmail_mailitems dans msdb qui me va parfaitement pour les éléments envoyés, il me faudrait la même pour les éléments reçu.

    Je creuse et je ne lache pas souvent .

    A+

  10. #10
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Effectivement vous avez raison, j'avais oublié cette feature ..
    Je ne l'ai jamais testé .. mais apparement vous devez utiliser les procédures suivantes pour pouvoir lire votre email qui doit contenir une requête :

    •xp_startmail
    •xp_sendmail
    •xp_findnextmsg
    •xp_readmail
    •xp_deletemail
    •sp_processmail
    •xp_stopmail

    ++

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Mon but n'est pas d'envoyer une requête.
    Je veux juste utilisé l'objet de l'email.

    En gros si j'envoi un email au serveur avec pour objet 778899-01
    je veux capter cette demande pour retourner pour le client 778899 le rapport Excel N°01.

    Si je capte l'objet de l'email reçu le reste je saurais le faire sans problème.
    Mais je ne sais pas capter l'email.

    J'ai remarqué un truc. Quand j'envoi un email via sp_sendmail j'ai la trace avec toutes les infos dans sysmail_mailitems. Par contre, je n'ai aucune trace sur le compte outlook dans les éléments envoyés. (compte sur serveur exchange).
    Ca veut dire que la gestion même des emails est dans SQL Server ?
    Si oui, il doit bien avoir une table quelque part pour stocker les emails reçu ???

  12. #12
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    L'objet du mail doit être une requete interpretable par le moteur SQL Server.

    Les procédures stockées lisent directement les mails depuis votre mailbox

    ++

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Je ne suis pas sur de devoir envoyer des requêtes.
    Dans la xp_readmail, je peux capter pratiquement tous les élements d'un email (dont l'objet).
    Ensuite je peux les manipuler et en faire ce que je veux.

    Si je comprend bien il faut dans l'ordre
    •xp_startmail --> Démarrer une session mail
    •xp_findnextmsg --> scanner les messages ID par ID dans la boite de réception.
    •xp_readmail --> Ensuite il faut les lire et récupérer les infos
    •xp_deletemail --> Les supprimer si besoin
    •xp_stopmail --> et enfin, cloturer la session

    Je pense que mon souci n'est dû qu'à un mauvais paramétrage de mes profils et compte utilisateur & mail (parce qu'en plus ils doivent porter les mêmes nom, etc...).
    Enfin je suis un peu perdu sur la config propre des comptes.
    Je croyais m'en être sorti parce que l'envoi d'email fonctionne nickel !

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Visiblement il y a déjà eu le même souci que moi.
    Et c'est bien un problème de compte.


    Citation Envoyé par arwen Voir le message
    Aprés avoir cherché un peu partout, j'ai trouvé comment faire.
    En fait, il fallait déjà installer un client de messagerie sur le serveur SQL (Outlook par exemple) et définir un profil qui soit le même que celui du compte sous lequel sont lancés les services MSSQL.
    Ensuite, il fallait configurer SQLMail (définir le même profil).
    Les commandes xp_sendmail et le reste fonctionnent bien maintenant.

    Pour ceux qui auraient des problèmes sur SQL mail, n'hésitez pas à demander !

  15. #15
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Je ne suis pas sur de devoir envoyer des requêtes.
    Vous voulez lui envoyer quoi a SQL Server ? Peut etre que le mot commande conviendrait mieux alors ..

    Faites attention cependant car c'est une fonctionnalite qui est appelee a disparaitre

    Remarque
    Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
    ++

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Bon j'ai changé d'option.

    Finalement j'ai écris un petit script que j'ai collé à une règle dans le outlook du serveur.

    Les étapes :
    1- Envoyer un email au serveur avec pour object : XXX-01 (xxx = code client - 01 = numéro du rapport que je souhaite avoir en retour).

    2- J'ai ajouté une règle Outlook qui à la réception des emails de ce type, lance mon script.

    3- Mon script écrit dans une table spécifique de ma base sql server les information de l'email (code client, numéro du rapport demandé, date heure, email de retour pour la réponse.

    JE SUIS BLOQUE A CE STADE si quelqu'un peut m'aider pour la suite ?

    4- Il ma reste donc à faire un trigger qui lance la procédure stockée et qui récupère les informations dans un fichier excel

    5- Pour finir, envoi ce fichier Excel en pièce jointe à la personne qui l'avait demandé.

Discussions similaires

  1. [AC-2007] Envoi de tous les résultats d'une requête par email
    Par m6riil dans le forum IHM
    Réponses: 1
    Dernier message: 30/04/2013, 18h25
  2. Réponses: 6
    Dernier message: 07/10/2009, 16h05
  3. Réponses: 0
    Dernier message: 31/07/2009, 03h32
  4. Réponses: 1
    Dernier message: 15/07/2005, 12h21

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