Maison >base de données >tutoriel mysql >Comment puis-je envoyer des e-mails depuis SQL Server en utilisant des adresses e-mail stockées ?

Comment puis-je envoyer des e-mails depuis SQL Server en utilisant des adresses e-mail stockées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-27 15:37:10204parcourir

How Can I Send Emails from SQL Server Using Stored Email Addresses?

Envoi d'e-mails depuis SQL Server avec des adresses e-mail stockées

Autonomiser votre base de données SQL Server pour envoyer des e-mails est une tâche essentielle dans divers scénarios. Supposons que vous ayez des adresses e-mail stockées dans un tableau et que vous deviez déclencher des notifications par e-mail. Cet article présente une approche globale pour y parvenir en utilisant le langage de programmation T-SQL.

Étape 1 : Configurer les paramètres de messagerie de la base de données

Avant d'envoyer des e-mails, vous devez définir votre infrastructure de messagerie de base de données. Utilisez l'Assistant Configurer la messagerie de base de données dans SQL Server Management Studio pour créer des profils, des comptes et des paramètres globaux. Cela permettra la livraison d'e-mails à partir de votre environnement SQL Server.

Étape 2 : Activation des procédures stockées étendues et de la messagerie de base de données

Pour utiliser les procédures stockées nécessaires à l'envoi d'e-mails, exécutez les commandes suivantes :

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

Étape 3 : Envoi d'un single E-mail

Pour envoyer un seul e-mail avec une adresse e-mail codée en dur, utilisez la procédure sp_send_dbmail :

USE msdb
GO
EXEC sp_send_dbmail @profile_name='yourprofilename',
@recipients='[email protected]',
@subject='Test message',
@body='This is the body of the test message.
Congrates Database Mail Received By you Successfully.'

Étape 4 : parcourir une table d'adresses e-mail

Pour envoyer des e-mails à plusieurs destinataires stockés dans un tableau, vous pouvez parcourir le tableau en utilisant un while loop :

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

Cette approche globale vous permet d'envoyer efficacement des e-mails depuis SQL Server, que les adresses e-mail de vos destinataires soient ou non stockées dans un tableau.

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