Maison >base de données >tutoriel mysql >Comment puis-je envoyer des e-mails dynamiques à partir de SQL Server à l'aide d'une table de liste de destinataires ?

Comment puis-je envoyer des e-mails dynamiques à partir de SQL Server à l'aide d'une table de liste de destinataires ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 22:26:42307parcourir

How Can I Send Dynamic Emails from SQL Server Using a Recipient List Table?

Envoi d'e-mails depuis SQL Server avec liste de destinataires dynamique

L'envoi d'e-mails depuis SQL Server peut être un outil puissant pour rationaliser la communication, mais il peut deviennent plus complexes lorsque les adresses des destinataires sont stockées dans une table. Voici comment relever ce défi dans T-SQL :

Étape 1 : configurer le profil et le compte

Configurez un profil et un compte de messagerie de base de données à l'aide de l'assistant de messagerie de base de données. Cela vous permettra de spécifier les paramètres et les informations d'identification SMTP.

Étape 2 : Activer les fonctionnalités étendues

Exécutez les commandes suivantes dans l'ordre pour activer les fonctionnalités avancées et les XP de messagerie de base de données :

sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO

Étape 3 : parcourir la table et envoyer E-mails

Pour envoyer des e-mails aux destinataires répertoriés dans un tableau, utilisez un curseur ou une boucle WHILE pour parcourir les lignes :

DECLARE @email_id NVARCHAR(450), @id BIGINT, @max_id BIGINT, @query NVARCHAR(1000)

SELECT @id=MIN(id), @max_id=MAX(id) FROM [email_adresses]

WHILE @id<=@max_id
BEGIN
    SELECT @email_id=email_id 
    FROM [email_adresses]

    set @query='sp_send_dbmail @profile_name=''yourprofilename'',
                        @recipients='''+@email_id+''',
                        @subject=''Test message'',
                        @body=''This is the body of the test message.
                        Congrates Database Mail Received By you Successfully.'''

    EXEC @query
    SELECT @id=MIN(id) FROM [email_adresses] where id>@id

END

Ce code parcourra les [email_adresses] table, récupérez l'adresse e-mail et envoyez un e-mail en utilisant le profil et le contenu spécifiés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn