2011-02-04 1 views
1

Bonjour à tous, J'utilise SQL Server 2008.mail SQL ------ LA BASE DE DONNÉES MAIL

Je suis face à un scénario où je dois envoyer du courrier à l'utilisateur unique ou multiple en fonction de la requête. J'ai essayé ce stmt pour envoyer le courrier à plusieurs destinataires

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'imran' , 
@recipients= '[email protected];[email protected]', 
@subject = 'Test mail' 

Il a envoyé avec succès le courrier.

Maintenant, je veux envoyer le courrier en fonction de la requête. Avec un seul employé, ce n'est pas un problème, mais si c'est plus d'un employé, comment puis-je envoyer un courriel à plusieurs destinataires?

C'est ma question est dans ce sp pour envoyer plusieurs destinataires, il faut séparer les adresses avec ;. Comment puis-je organiser les destinataires de sorte que le ; entre les deux.

Merci.

+1

sont des adresses e-mail réels de ces personnes? Si tel est le cas, supprimez-les ou anonymisez-les. –

Répondre

0

utiliser une fonction comme celui-ci -

CREATE FUNCTION coltocsv 
(
    --your input parameters 
) 
RETURNS nvarchar(3000) 
AS 
BEGIN 
     -- Declare the return variable here 
declare @keywords nvarchar(3000) 

--Build your csv string of keywords 
Select @keywords = null 
SELECT @Keywords = Coalesce(@Keywords + '; ', '') + 
ColumnName 
from Table 
where <some condition> 

--- Return the result of the function 
     RETURN @keywords 
END 
2

Malheureusement, vous ne nous donnez pas beaucoup à continuer - vous ne nous montrez pas la requête pour sélectionner vos employés, vous ne nous dites pas quoi que ce soit à quoi ressemble la table Employee, donc tout ce que nous pouvons faire est de deviner - au mieux.

Alors, voici ma proposition: vous voulez sélectionner plusieurs employés en quelque sorte, et leurs adresses de courrier électronique doivent être liés ensemble, séparés par un point-virgule (;), puis utilisé pour votre appel sp_send_dbmail.

Une méthode pour faire cela pourrait être ceci:

DECLARE @recipients VARCHAR(4000) 

SELECT 
    @recipients = STUFF((SELECT ';' + EMail 
         FROM dbo.Employees 
         WHERE (some condition here to find the right employees) 
         FOR XML PATH('') 
         ), 1, 1, '') 

EXEC msdb.dbo.sp_send_dbmail 
     @profile_name = 'imran', 
     @recipients, 
     @subject = 'Test mail' 
Questions connexes