Maison base de données tutoriel mysql Partagez l'exemple de code SQL Server pour l'envoi d'e-mails à l'aide de déclencheurs

Partagez l'exemple de code SQL Server pour l'envoi d'e-mails à l'aide de déclencheurs

Apr 26, 2017 pm 01:58 PM

Cet article vous donne une introduction détaillée étape par étape à la façon dont SQL Server utilise les déclencheurs pour envoyer des e-mails. Les amis dans le besoin peuvent se référer à

sql utilise la procédure stockée système sp_send_dbmail pour envoyer des e-mails, syntaxe :

sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
 [ , [ @recipients = ] 'recipients [ ; ...n ]' ]
 [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]
 [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]
 [ , [ @subject = ] 'subject' ] 
 [ , [ @body = ] 'body' ] 
 [ , [ @body_format = ] 'body_format' ]
 [ , [ @importance = ] 'importance' ]
 [ , [ @sensitivity = ] 'sensitivity' ]
 [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]
 [ , [ @query = ] 'query' ]
 [ , [ @execute_query_database = ] 'execute_query_database' ]
 [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
 [ , [ @query_attachment_filename = ] query_attachment_filename ]
 [ , [ @query_result_header = ] query_result_header ]
 [ , [ @query_result_width = ] query_result_width ]
 [ , [ @query_result_separator = ] 'query_result_separator' ]
 [ , [ @exclude_query_output = ] exclude_query_output ]
 [ , [ @append_query_error = ] append_query_error ]
 [ , [ @query_no_truncate = ] query_no_truncate ]
 [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]
Copier après la connexion

Démarrer la configuration de SQL pour envoyer des e-mails :

Étape 1 :

-- 启用 sql server 邮件的功能
exec sp_configure 'show advanced options',1
go
reconfigure;
go
exec sp_configure 'Database Mail XPs',1
go
reconfigure;
go
Copier après la connexion

Si l'exécution de l'instruction ci-dessus échoue, vous pouvez également utiliser l'instruction suivante.

-- 启用 sql server 邮件的功能
exec sp_configure 'show advanced options', 1
go
reconfigure with override
go
exec sp_configure 'Database Mail XPs', 1
go
reconfigure with override
go
Copier après la connexion

Utilisez l'instruction suivante pour vérifier si la fonction de messagerie de la base de données est activée avec succès et les informations de configuration de la base de données :

-- 查询数据库的配置信息
select * from sys.configurations
-- 查看数据库邮件功能是否开启,value 值为1表示已开启,0为未开启
select name,value,description,
    is_dynamic,is_advanced
from sys.configurations
where name like '%mail%'
Copier après la connexion

Étape 2 :

if exists(SELECT * FROM msdb..sysmail_account WHERE NAME='test') --判断邮件账户名为 test 的账户是否存在
begin
  EXEC msdb..sysmail_delete_account_sp @account_name='test' -- 删除邮件账户名为 test 的账户
end
exec msdb..sysmail_add_account_sp  --创建邮件账户
    @account_name = 'test'   -- 邮件帐户名称
    ,@email_address = '980095349@qq.com'   -- 发件人邮件地址 
    ,@display_name = 'Brambling'    -- 发件人姓名 
    ,@replyto_address = null    -- 回复地址
    ,@description = null      -- 邮件账户描述
    ,@mailserver_name = 'smtp.qq.com'  -- 邮件服务器地址 
    ,@mailserver_type = 'SMTP'    -- 邮件协议
    ,@port = 25         -- 邮件服务器端口 
    ,@username = '980095349@qq.com'    -- 用户名 
    ,@password = 'xxxxxx'   -- 密码 
    ,@use_default_credentials = 0  -- 是否使用默认凭证,0为否,1为是
    ,@enable_ssl = 1    -- 是否启用 ssl 加密,0为否,1为是
    ,@account_id = null -- 输出参数,返回创建的邮件账户的ID
Copier après la connexion

PS : Si vous utilisez la boîte aux lettres QQ, pensez à définir la valeur du paramètre @enable_ssl à 1. Sinon, une erreur de serveur sera signalée plus tard. Cette erreur m'a longtemps dérangé, et j'ai finalement trouvé la raison.

Troisième étape :

if exists(SELECT * FROM msdb..sysmail_profile where NAME = N'SendEmailProfile') --判断名为 SendEmailProfile 的邮件配置文件是否存在
begin 
  exec msdb..sysmail_delete_profile_sp @profile_name = 'SendEmailProfile' --删除名为 SendEmailProfile 的邮件配置文件
end
exec msdb..sysmail_add_profile_sp  -- 添加邮件配置文件
   @profile_name = 'SendEmailProfile',  -- 配置文件名称  
   @description = '数据库发送邮件配置文件',  -- 配置文件描述   
   @profile_id = NULL    -- 输出参数,返回创建的邮件配置文件的ID
Copier après la connexion

Quatrième étape :

-- 邮件账户和邮件配置文件相关联 
exec msdb..sysmail_add_profileaccount_sp  
   @profile_name = 'SendEmailProfile',  -- 邮件配置文件名称   
   @account_name = 'test',  -- 邮件账户名称    
   @sequence_number = 1  -- account 在 profile 中的顺序,一个配置文件可以有多个不同的邮件账户
Copier après la connexion

D'accord, va ici sql envoyer un e-mail Le la configuration est pratiquement terminée. Créez un déclencheur ci-dessous pour envoyer un e-mail à l'utilisateur une fois que celui-ci s'est inscrit avec succès.

Créez d'abord une table :

-- 创建一个表
 create table T_User
 (
   UserID    int    not null  identity(1,1) primary key,
   UserNo    nvarchar(64)  not null unique,
   UserPwd    nvarchar(128) not null ,
   UserMail  nvarchar(128)  null
 )
 go
Copier après la connexion

Ensuite, créez un type d'insertion après le déclencheur :

 create trigger NewUser_Send_Mail
 on T_User
 after insert
 as
   declare @UserNo  nvarchar(64)
   declare @title  nvarchar(64)
   declare @content nvarchar(320)
   declare @mailUrl nvarchar(128)
   declare @count  int
   select @count=COUNT() from inserted 
   select @UserNo=UserNo,@mailUrl=UserMail from inserted
   if(@count>0)
   begin
     set @title='注册成功通知'
     set @content='欢迎您'+@UserNo+'!您已成功注册!通知邮件,请勿回复!'
     exec msdb.dbo.sp_send_dbmail @profile_name='SendEmailProfile',  -- 邮件配置文件名称
                   @recipients=@mailUrl,    -- 邮件发送地址
                   @subject=@title,    -- 邮件标题
                   @body=@content,  --邮件内容
                   @body_format='text'  -- 邮件内容的类型,text 为文本,还可以设置为 html 
   end
 go
Copier après la connexion

Testons-le maintenant :

 -- 新添加一条数据,用以触发 insert 触发器
 insert into T_User(UserNo,UserPwd,UserMail) values('demo1','123456','1171588826@qq.com')
Copier après la connexion

Après avoir exécuté l'instruction ci-dessus, vous recevrez l'e-mail dans environ deux ou trois secondes (si aucune erreur ne se produit). Si vous ne recevez pas l'e-mail, vous pouvez utiliser la déclaration suivante pour vérifier l'état de livraison de l'e-mail.

use msdb
go
select * from sysmail_allitems    -- 邮件发送情况,可以用来查看邮件是否发送成功
select * from sysmail_mailitems    -- 发送邮件的记录
select * from sysmail_event_log      -- 数据库邮件日志,可以用来查询是否报错
Copier après la connexion
use msdb 
go
--为角色名为 dba 的角色赋予发送数据库邮件的权限
create user dba for login dba  
go 
exec dbo.sp_addrolemember @rolename  = 'DatabaseMailUserRole', 
             @membername = 'dba' 
go 
use msdb 
go 
  --为角色名为 dba 的角色赋予配置文件发送邮件的权限
exec sysmail_add_principalprofile_sp @principal_name = 'dba',    -- 角色名称
                   @profile_name = 'SendEmailProfile', -- 配置文件名称
                   @is_default = 1  -- 对于角色所拥有的配置文件的顺序,一个数据库角色可以有多个配置文件的权限
Copier après la connexion

Si le rôle utilisé pour se connecter à la session de base de données n'a pas l'autorisation d'envoyer des e-mails à la base de données, une erreur sera également signalée. Ce qui précède est donc l'instruction SQL qui donne au rôle l'autorisation d'envoyer des e-mails à la base de données.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel logiciel est Microsoft SQL Server ? Quel logiciel est Microsoft SQL Server ? Feb 28, 2023 pm 03:00 PM

Microsoft SQL Server est un système de gestion de base de données relationnelle lancé par Microsoft. Il s'agit d'une plate-forme de base de données complète qui utilise des outils de business intelligence (BI) intégrés pour fournir une gestion des données au niveau de l'entreprise. Elle est facile à utiliser, a une bonne évolutivité et a un niveau élevé. degré d'intégration avec les logiciels associés. Avantages élevés. Le moteur de base de données SQL Server fournit des fonctions de stockage plus sécurisées et plus fiables pour les données relationnelles et les données structurées, permettant aux utilisateurs de créer et de gérer des applications de données hautement disponibles et performantes pour les entreprises.

SQL Server ou MySQL ? Une nouvelle recherche révèle les meilleurs choix de bases de données. SQL Server ou MySQL ? Une nouvelle recherche révèle les meilleurs choix de bases de données. Sep 08, 2023 pm 04:34 PM

SQLServer ou MySQL ? Les dernières recherches révèlent la meilleure sélection de bases de données. Ces dernières années, avec le développement rapide d'Internet et du Big Data, la sélection de bases de données est devenue un problème important auquel sont confrontés les entreprises et les développeurs. Parmi les nombreuses bases de données, SQL Server et MySQL, qui sont les deux bases de données relationnelles les plus courantes et les plus utilisées, sont très controversées. Alors, entre SQLServer et MySQL, lequel choisir ? Les dernières recherches nous éclairent sur ce problème. Tout d'abord, laissez

Comment se connecter à une base de données Microsoft SQL Server à l'aide de PDO Comment se connecter à une base de données Microsoft SQL Server à l'aide de PDO Jul 29, 2023 pm 01:49 PM

Introduction à l'utilisation de PDO pour se connecter à une base de données Microsoft SQL Server : PDO (PHPDataObjects) est une interface unifiée pour accéder aux bases de données fournies par PHP. Il offre de nombreux avantages, tels que la mise en œuvre d'une couche d'abstraction de la base de données et la possibilité de basculer facilement entre différents types de bases de données sans modifier une grande quantité de code. Cet article explique comment utiliser PDO pour se connecter à une base de données Microsoft SQL Server et fournit quelques exemples de code associés. étape

Développement de bases de données PHP et SQL Server Développement de bases de données PHP et SQL Server Jun 20, 2023 pm 10:38 PM

Avec la popularité d’Internet, le développement de sites Web et d’applications est devenu l’activité principale de nombreuses entreprises et particuliers. Les bases de données PHP et SQLServer sont deux outils très importants. PHP est un langage de script côté serveur qui peut être utilisé pour développer des sites Web dynamiques ; SQLServer est un système de gestion de bases de données relationnelles développé par Microsoft et propose un large éventail de scénarios d'application. Dans cet article, nous aborderons le développement de PHP et SQL Server, ainsi que leurs avantages, inconvénients et méthodes d'application. Tout d'abord, commençons

Une brève analyse de cinq méthodes de connexion de SQL Server à PHP Une brève analyse de cinq méthodes de connexion de SQL Server à PHP Mar 21, 2023 pm 04:32 PM

Dans le développement Web, la combinaison de PHP et MySQL est très courante. Cependant, dans certains cas, nous devons nous connecter à d’autres types de bases de données, comme SQL Server. Dans cet article, nous aborderons cinq manières différentes de se connecter à SQL Server à l'aide de PHP.

SQL Server vs MySQL : quelle base de données est la plus adaptée à une architecture haute disponibilité ? SQL Server vs MySQL : quelle base de données est la plus adaptée à une architecture haute disponibilité ? Sep 10, 2023 pm 01:39 PM

SQL Server vs MySQL : quelle base de données est la plus adaptée à une architecture haute disponibilité ? Dans le monde actuel axé sur les données, la haute disponibilité est l'une des nécessités pour créer des systèmes fiables et stables. En tant que composant essentiel du stockage et de la gestion des données, la haute disponibilité de la base de données est cruciale pour le fonctionnement commercial de l'entreprise. Parmi les nombreuses bases de données, SQLServer et MySQL sont des choix courants. Alors en termes d’architecture haute disponibilité, quelle base de données est la plus adaptée ? Cet article comparera les deux et donnera quelques suggestions.

Comparaison SQL Server et MySQL : lequel est le meilleur pour le traitement de données à grande échelle ? Comparaison SQL Server et MySQL : lequel est le meilleur pour le traitement de données à grande échelle ? Sep 09, 2023 am 09:36 AM

SQLServer et MySQL sont actuellement deux systèmes de gestion de bases de données relationnelles (SGBDR) très populaires. Ce sont tous deux des outils puissants pour stocker et gérer des données à grande échelle. Cependant, ils présentent certaines différences dans le traitement des données à grande échelle. Cet article comparera SQL Server et MySQL, en se concentrant sur leur adéquation au traitement de données à grande échelle. Tout d’abord, comprenons les caractéristiques de base de SQLServer et MySQL. SQLServer est développé par Microsoft

SQL Server et MySQL rivalisent, comment choisir la meilleure solution de base de données ? SQL Server et MySQL rivalisent, comment choisir la meilleure solution de base de données ? Sep 10, 2023 am 08:07 AM

Avec le développement continu d’Internet, la sélection des bases de données est devenue de plus en plus importante. Parmi les nombreuses bases de données, SQLServer et MySQL sont deux options de premier plan. SQLServer est un système de gestion de bases de données relationnelles développé par Microsoft, tandis que MySQL est un système de gestion de bases de données relationnelles open source. Alors comment choisir la meilleure solution de base de données entre SQLServer et MySQL ? Tout d’abord, nous pouvons comparer ces deux bases de données en termes de performances. SQLServer est en train de traiter

See all articles