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 e-mail multiples


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut Envoi e-mail multiples
    Bonjour a tous !

    Me revoila avec un nouveau probleme...

    J'ai besoin d'envoyer un mail a un certain nombre de personnes. Pour le moment j'arrive parfaitement a recuperer la liste exacte des personnes a contacter avec toutes les infos dont j'ai besoin.
    Chaque mail est personnalise donc impossible de creer une liste de diffusion.
    Pour envoyer les mails, j'utilise sp_send_dbmail.

    Voici mon code (qui bien sur ne marche pas!):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXEC msdb.dbo.sp_send_dbmail
    	@recipients = CAST(SELECT OfficeMail FROM tblUser Where UserID > 50),
            @Object = N'bla bla...',
            @Subject = N'Reminder'
    Ma question:
    Comment envoyer un mail a chaque personne incluse dans ma requete "SELECT" (qui est plus complexe que celle donnee en exemple) ?

    merci d'avance
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @destinataires varchar(max)
    SELECT	@destinataires = CASE WHEN @destinataires IS NULL THEN '' ELSE @destinataires END + OfficeMail + ';'
    FROM	tblUser
    WHERE	 UserID > 50
     
    EXEC msdb.dbo.sp_send_dbmail
    	@recipients = @destinataires
            , @Subject = N'Reminder'
    @++

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Merci pour votre reponse !

    Cela fonctionne parfaitement, seulement j'ai besoin d'envoyer un e-mail specifique a chaque utilisateur retournes par le "SELECT" ...

    Dois-je utiliser un curseur ?
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Malheureusement oui ...

    @++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Bon je me suis essaye aux curseurs mais je ne suis certain d'avoir tout compris...

    Voici ce que j'ai pour le moment:
    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
    DECLARE @SRID int, @SRTitle nvarchar(255) ,@BUAnalyst nvarchar(255), @ProjectLeader nvarchar(255), @ReviewDate datetime
     
    DECLARE curC CURSOR FOR
    SELECT ...  /* La requete me permet de recuperer les infos dont j'ai besoin */
     
    OPEN curC
    FETCH curC INTO @SRID, @SRTitle, @BUAnalyst, @ProjectLeader, @ReviewDate
    WHILE @@FETCH_STATUS = 0
    BEGIN
    	DECLARE @TextBody nvarchar(max)
    	DECLARE @TextSubject nvarchar(max)
    	SET @TextSubject =  'SR' + CONVERT(nvarchar(max), @SRID ) + ': Review date reminder'
    	SET @TextBody = 'Your SR' + CONVERT(nvarchar(max),@SRID) + ' ' + @SRTitle + ' will be reviewed on ' + CONVERT(nvarchar(max),@ReviewDate )
    	EXEC msdb.dbo.sp_send_dbmail
    		@recipients = @BUAnalyst,
    		@copy_recipients = @ProjectLeader,
    		@body = @TextBody,
    		@subject = @TextSubject
    	FETCH NEXT FROM cur
    END
    CLOSE curC;
    DEALLOCATE curC;
    GO
    Le "SELECT" me renvoi normalement 4 enregistrements.
    Lorsque j'execute le script, j'ai bien un premier mail qui est envoye, mais pas les 3 suivants... Ai-je loupe quelque chose ???
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Autant pour moi j'ai trouve le probleme...

    J'ai mal tape : Le probleme maintenant c'est qu'il ne va pas a l'enregistrement suivant... Il reste sur le meme enregistrement, et donc ne boucle pas sur le SELECT...

    Une idee ?
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    J'ai fini par trouver mon erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FETCH NEXT FROM curC INTO @SRID, @SRTitle, @BUAnalyst, @ProjectLeader, @ReviewDate
    Je ne bouclais pas sur les valeurs, alors forcemment ca ne marchait pas !

    Merci !
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  8. #8
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Bonjour,

    je m'interesse à votre problème car il se rapproche un peu du mien

    Avez vous plusieurs ligne dans votre requête resultat, genre

    ligne 1
    ligne 2
    ligne 3

    a envoyer a chaque personne??

    merci

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Oui, j'ai un nombre x de resultats renvoyes par ma requete "SELECT". Pour chaque resultat (ou ligne) j'envoi un mail specifique contenant des infos de la ligne en question
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  10. #10
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Aie, c'était presque bon pour moi mais je dois envoyer plusieurs lignes dans le mail.

  11. #11
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Concaténez les lignes à envoyer au même utilisateur en plaçant un <br> si vous envoyez au format HTML, ou CHAR(13) + CHAR(10) si vous envoyez en texte brut.

    @++

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

Discussions similaires

  1. macros et vba excel envoi de mails multiples
    Par dembasba dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/09/2011, 21h41
  2. [XL-2002] Envoi de mails multiples - pièce jointe différente
    Par Phanloga dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/04/2011, 10h06
  3. Envois de mails multiples
    Par nicolasferraris dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2010, 13h49
  4. envoi de mail multiple vers la meme adresse
    Par manu7607 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 22/08/2009, 22h11
  5. envois de mail multiple
    Par Jcpan dans le forum Langage
    Réponses: 6
    Dernier message: 25/02/2009, 13h16

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