Heim Datenbank MySQL-Tutorial Teilen Sie den SQL Server-Beispielcode zum Senden von E-Mails mithilfe von Triggern

Teilen Sie den SQL Server-Beispielcode zum Senden von E-Mails mithilfe von Triggern

Apr 26, 2017 pm 01:58 PM

Dieser Artikel gibt Ihnen eine detaillierte Schritt-für-Schritt-Einführung, wie SQL Server Trigger zum Senden von E-Mails verwendet. Freunde, die es benötigen, können sich an

sql wenden, um die Syntax der gespeicherten Systemprozedur sp_send_dbmail zu senden:

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 ]
Nach dem Login kopieren

Beginnen Sie mit der Konfiguration von SQL zum Senden von E-Mails:

Schritt 1:

-- 启用 sql server 邮件的功能
exec sp_configure 'show advanced options',1
go
reconfigure;
go
exec sp_configure 'Database Mail XPs',1
go
reconfigure;
go
Nach dem Login kopieren

Wenn die obige Anweisung nicht ausgeführt werden kann, können Sie auch die folgende Anweisung verwenden.

-- 启用 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
Nach dem Login kopieren

Verwenden Sie die folgende Anweisung, um zu überprüfen, ob die Datenbank-Mail-Funktion erfolgreich aktiviert wurde, und um die Datenbankkonfigurationsinformationen anzuzeigen:

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

Schritt 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
Nach dem Login kopieren

PS: Wenn Sie ein QQ-Postfach verwenden, denken Sie daran, den Wert des Parameters @enable_ssl auf 1 zu setzen. Andernfalls wird später ein Serverfehler gemeldet. Dieser Fehler hat mich lange gestört und ich habe endlich den Grund gefunden.

Schritt 3:

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
Nach dem Login kopieren

Schritt 4:

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

Okay, gehen Sie hierher, SQL-E-Mail senden Die Konfiguration ist grundsätzlich abgeschlossen. Erstellen Sie unten einen Auslöser, um eine E-Mail an den Benutzer zu senden, nachdem sich der Benutzer erfolgreich registriert hat.

Erstellen Sie zuerst eine Tabelle:

-- 创建一个表
 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
Nach dem Login kopieren

Dann erstellen Sie einen Einfügetyp nach dem Trigger:

 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
Nach dem Login kopieren

Lass es uns jetzt testen:

 -- 新添加一条数据,用以触发 insert 触发器
 insert into T_User(UserNo,UserPwd,UserMail) values('demo1','123456','1171588826@qq.com')
Nach dem Login kopieren

Nachdem Sie die obige Anweisung ausgeführt haben, erhalten Sie die E-Mail in etwa zwei bis drei Sekunden (sofern keine Fehler auftreten). Sollten Sie die E-Mail nicht erhalten, können Sie anhand der folgenden Erklärung den E-Mail-Zustellungsstatus überprüfen.

use msdb
go
select * from sysmail_allitems    -- 邮件发送情况,可以用来查看邮件是否发送成功
select * from sysmail_mailitems    -- 发送邮件的记录
select * from sysmail_event_log      -- 数据库邮件日志,可以用来查询是否报错
Nach dem Login kopieren
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  -- 对于角色所拥有的配置文件的顺序,一个数据库角色可以有多个配置文件的权限
Nach dem Login kopieren

Wenn die Rolle, mit der Sie sich bei der Datenbanksitzung angemeldet haben, nicht über die Berechtigung zum Senden von Datenbank-E-Mails verfügt, wird ebenfalls ein Fehler gemeldet. Das Obige ist also die SQL-Anweisung, die der Rolle die Berechtigung zum Senden von Datenbank-E-Mails erteilt.

Das obige ist der detaillierte Inhalt vonTeilen Sie den SQL Server-Beispielcode zum Senden von E-Mails mithilfe von Triggern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Software ist Microsoft SQL Server? Welche Software ist Microsoft SQL Server? Feb 28, 2023 pm 03:00 PM

Microsoft SQL Server ist ein relationales Datenbankverwaltungssystem, das von Microsoft eingeführt wurde. Es handelt sich um eine umfassende Datenbankplattform, die integrierte Business-Intelligence-Tools (BI) verwendet, um eine Datenverwaltung auf Unternehmensebene zu ermöglichen Grad der Integration mit verwandter Software. Die SQL Server-Datenbank-Engine bietet sicherere und zuverlässigere Speicherfunktionen für relationale Daten und strukturierte Daten und ermöglicht es Benutzern, hochverfügbare und leistungsstarke Datenanwendungen für Unternehmen zu erstellen und zu verwalten.

SQL Server oder MySQL? Neue Forschungsergebnisse zeigen die besten Datenbankoptionen. SQL Server oder MySQL? Neue Forschungsergebnisse zeigen die besten Datenbankoptionen. Sep 08, 2023 pm 04:34 PM

SQLServer oder MySQL? Die neueste Forschung zeigt die beste Datenbankauswahl. Mit der rasanten Entwicklung des Internets und Big Data ist die Datenbankauswahl zu einem wichtigen Thema für Unternehmen und Entwickler geworden. Unter vielen Datenbanken sind SQL Server und MySQL als die beiden am weitesten verbreiteten und am weitesten verbreiteten relationalen Datenbanken äußerst umstritten. Welches sollten Sie also zwischen SQLServer und MySQL wählen? Die neuesten Forschungsergebnisse bringen für uns Licht in dieses Problem. Lassen Sie zunächst

Entwicklung von PHP- und SQL Server-Datenbanken Entwicklung von PHP- und SQL Server-Datenbanken Jun 20, 2023 pm 10:38 PM

Mit der Popularität des Internets ist die Entwicklung von Websites und Anwendungen zum Hauptgeschäft vieler Unternehmen und Einzelpersonen geworden. PHP und SQLServer-Datenbank sind zwei sehr wichtige Tools. PHP ist eine serverseitige Skriptsprache, mit der dynamische Websites entwickelt werden können. SQL Server ist ein von Microsoft entwickeltes relationales Datenbankverwaltungssystem mit vielfältigen Anwendungsszenarien. In diesem Artikel besprechen wir die Entwicklung von PHP und SQL Server sowie deren Vor- und Nachteile sowie Anwendungsmethoden. Lassen Sie uns zunächst einmal

So stellen Sie mithilfe von PDO eine Verbindung zu einer Microsoft SQL Server-Datenbank her So stellen Sie mithilfe von PDO eine Verbindung zu einer Microsoft SQL Server-Datenbank her Jul 29, 2023 pm 01:49 PM

Einführung in die Verwendung von PDO zum Herstellen einer Verbindung zu einer Microsoft SQL Server-Datenbank: PDO (PHPDataObjects) ist eine einheitliche Schnittstelle für den Zugriff auf von PHP bereitgestellte Datenbanken. Es bietet viele Vorteile, wie z. B. die Implementierung einer Abstraktionsschicht der Datenbank und die Erleichterung des Wechsels zwischen verschiedenen Datenbanktypen, ohne große Codemengen ändern zu müssen. In diesem Artikel wird erläutert, wie Sie mit PDO eine Verbindung zu einer Microsoft SQL Server-Datenbank herstellen, und es werden einige zugehörige Codebeispiele bereitgestellt. Schritt

Eine kurze Analyse von fünf Methoden zur Verbindung von SQL Server mit PHP Eine kurze Analyse von fünf Methoden zur Verbindung von SQL Server mit PHP Mar 21, 2023 pm 04:32 PM

In der Webentwicklung ist die Kombination von PHP und MySQL sehr verbreitet. In einigen Fällen müssen wir jedoch eine Verbindung zu anderen Datenbanktypen herstellen, beispielsweise zu SQL Server. In diesem Artikel behandeln wir fünf verschiedene Möglichkeiten, mit PHP eine Verbindung zu SQL Server herzustellen.

SQL Server und MySQL stehen im Wettbewerb. Wie wählt man die beste Datenbanklösung aus? SQL Server und MySQL stehen im Wettbewerb. Wie wählt man die beste Datenbanklösung aus? Sep 10, 2023 am 08:07 AM

Mit der kontinuierlichen Entwicklung des Internets hat die Datenbankauswahl immer mehr an Bedeutung gewonnen. Unter den vielen Datenbanken sind SQLServer und MySQL zwei hochkarätige Optionen. SQLServer ist ein von Microsoft entwickeltes relationales Datenbankverwaltungssystem, während MySQL ein relationales Open-Source-Datenbankverwaltungssystem ist. Wie wählt man also die beste Datenbanklösung zwischen SQLServer und MySQL aus? Zunächst können wir diese beiden Datenbanken hinsichtlich der Leistung vergleichen. SQLServer verarbeitet

SQL Server vs. MySQL: Welche Datenbank eignet sich besser für eine Hochverfügbarkeitsarchitektur? SQL Server vs. MySQL: Welche Datenbank eignet sich besser für eine Hochverfügbarkeitsarchitektur? Sep 10, 2023 pm 01:39 PM

SQL Server vs. MySQL: Welche Datenbank eignet sich besser für eine Hochverfügbarkeitsarchitektur? In der heutigen datengesteuerten Welt ist hohe Verfügbarkeit eine der notwendigen Voraussetzungen für den Aufbau zuverlässiger und stabiler Systeme. Als Kernkomponente der Datenspeicherung und -verwaltung ist die hohe Verfügbarkeit der Datenbank für den Geschäftsbetrieb des Unternehmens von entscheidender Bedeutung. Unter den vielen Datenbanken sind SQLServer und MySQL die gängige Wahl. Welche Datenbank ist im Hinblick auf eine Hochverfügbarkeitsarchitektur besser geeignet? In diesem Artikel werden die beiden verglichen und einige Vorschläge gemacht.

SQL Server vs. MySQL: Was ist besser für die Entwicklung mobiler Apps? SQL Server vs. MySQL: Was ist besser für die Entwicklung mobiler Apps? Sep 09, 2023 pm 01:42 PM

SQLServer vs. MySQL: Was ist besser für die Entwicklung mobiler Apps? Mit der rasanten Entwicklung des Marktes für mobile Anwendungen wird es für Entwickler immer wichtiger, ein Datenbankverwaltungssystem auszuwählen, das für die Entwicklung mobiler Anwendungen geeignet ist. Unter den vielen Möglichkeiten sind SQLServer und MySQL zwei von Entwicklern bevorzugte Datenbanksysteme. Dieser Artikel konzentriert sich auf den Vergleich dieser beiden Datenbanksysteme, um festzustellen, welches für die Entwicklung mobiler Anwendungen besser geeignet ist, und zeigt ihre Unterschiede anhand von Codebeispielen auf. SQLServer ist Microsoft

See all articles