Maison >base de données >tutoriel mysql >Comment envoyer par programme des e-mails à partir de SQL Server à l'aide d'adresses stockées ?

Comment envoyer par programme des e-mails à partir de SQL Server à l'aide d'adresses stockées ?

DDD
DDDoriginal
2024-12-28 00:34:10451parcourir

How to Programmatically Send Emails from SQL Server Using Stored Addresses?

Comment envoyer par programme des e-mails à partir de SQL Server à l'aide d'adresses e-mail stockées

L'envoi d'e-mails à partir de SQL Server peut être une tâche d'automatisation utile pour divers scénarios . Cet article montre comment y parvenir à l'aide de T-SQL lorsque les adresses e-mail sont stockées dans une table.

Mise en œuvre étape par étape :

Étape 1 : Configurer la messagerie de base de données

  • Créez un profil et un compte de messagerie de base de données à l'aide de l'assistant de configuration de messagerie de base de données. Cet assistant configure l'infrastructure nécessaire à l'envoi d'e-mails.

Étape 2 : Activer les fonctionnalités avancées de messagerie de base de données

Exécutez les commandes suivantes pour activer la fonctionnalité avancée 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 : Envoyer un seul e-mail à l'aide d'un Profil

Utilisez la procédure stockée sp_send_dbmail pour envoyer un e-mail à partir du profil spécifié :

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 et envoyer des e-mails

Pour envoyer des e-mails à plusieurs destinataires en fonction d'un tableau d'adresses e-mail, suivez ces étapes :

  1. Déclarez les variables pour l'ID de messagerie (@email_id), l'ID actuel (@id), l'ID maximum (@max_id) et la requête SQL (@query).
  2. Obtenez les identifiants minimum et maximum de la table [email_adresses].
  3. Utilisez une boucle WHILE pour parcourir la table ID.
  4. Dans la boucle, récupérez l'adresse e-mail (@email_id).
  5. Créez dynamiquement la requête sp_send_dbmail en fonction de l'adresse e-mail actuelle.
  6. Exécutez la requête à envoyer l'e-mail.
  7. Mettre à jour l'identifiant actuel (@id) pour le prochain itération.

Voici le code de la boucle :

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 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