国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數據庫 > SQL Server > 正文

SQL Server 使用觸發器(trigger)發送電子郵件步驟詳解

2024-08-31 01:04:50
字體:
來源:轉載
供稿:網友

sql 使用系統存儲過程 sp_send_dbmail 發送電子郵件語法:

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 ]

參數參考地址:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql

下面開始配置 sql 發送電子郵件:

步驟一:

-- 啟用 sql server 郵件的功能exec sp_configure 'show advanced options',1goreconfigure;goexec sp_configure 'Database Mail XPs',1goreconfigure;go

如果上面的語句執行失敗,也可以使用下面的語句。

-- 啟用 sql server 郵件的功能exec sp_configure 'show advanced options', 1goreconfigure with overridegoexec sp_configure 'Database Mail XPs', 1goreconfigure with overridego

使用下面的語句查看數據庫郵件功能是否開啟成功和數據庫配置信息:

-- 查詢數據庫的配置信息select * from sys.configurations-- 查看數據庫郵件功能是否開啟,value 值為1表示已開啟,0為未開啟select name,value,description,    is_dynamic,is_advancedfrom sys.configurationswhere name like '%mail%'

步驟二:

if exists(SELECT * FROM msdb..sysmail_account WHERE NAME='test') --判斷郵件賬戶名為 test 的賬戶是否存在begin  EXEC msdb..sysmail_delete_account_sp @account_name='test' -- 刪除郵件賬戶名為 test 的賬戶endexec 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

PS:如果使用的是QQ郵箱,記得要把參數 @enable_ssl 的值設置為 1 。不然后面會報服務器錯誤,這個錯誤搞了我好久,最后終于找到原因了。

步驟三:

if exists(SELECT * FROM msdb..sysmail_profile where NAME = N'SendEmailProfile') --判斷名為 SendEmailProfile 的郵件配置文件是否存在begin   exec msdb..sysmail_delete_profile_sp @profile_name = 'SendEmailProfile' --刪除名為 SendEmailProfile 的郵件配置文件endexec msdb..sysmail_add_profile_sp  -- 添加郵件配置文件   @profile_name = 'SendEmailProfile',  -- 配置文件名稱     @description = '數據庫發送郵件配置文件',  -- 配置文件描述      @profile_id = NULL    -- 輸出參數,返回創建的郵件配置文件的ID

步驟四:

-- 郵件賬戶和郵件配置文件相關聯 exec msdb..sysmail_add_profileaccount_sp     @profile_name = 'SendEmailProfile',  -- 郵件配置文件名稱      @account_name = 'test',  -- 郵件賬戶名稱       @sequence_number = 1  -- account 在 profile 中的順序,一個配置文件可以有多個不同的郵件賬戶

好了,到這里 sql 發送郵件的配置就基本結束了。下面創建一個觸發器實現用戶注冊成功后,發送郵件給用戶。

首先創建一個表:

-- 創建一個表 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

然后創建一個 insert 類型的 after 觸發器:

 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

下面就來測試一下吧:

 -- 新添加一條數據,用以觸發 insert 觸發器 insert into T_User(UserNo,UserPwd,UserMail) values('demo1','123456','1171588826@qq.com')

執行上面的語句之后,大概兩三秒鐘,就會收到郵件了(如果沒有出現錯誤的話)。如果沒有收到郵件可以使用下面的語句查看郵件發送情況。

use msdbgoselect * from sysmail_allitems    -- 郵件發送情況,可以用來查看郵件是否發送成功select * from sysmail_mailitems    -- 發送郵件的記錄select * from sysmail_event_log      -- 數據庫郵件日志,可以用來查詢是否報錯
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  -- 對于角色所擁有的配置文件的順序,一個數據庫角色可以有多個配置文件的權限

如果所使用的登陸數據庫會話的角色沒有發送數據庫郵件的權限,那么也會報錯。所以上面是賦予角色發送數據庫郵件的權限 sql 語句。

以上所述是小編給大家介紹的SQL Server 使用觸發器(trigger)發送電子郵件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
麻豆网站在线| 国产馆av播放| jizz性欧美| 美女永久在线网站| 午夜视频在线观看网站午夜视频在线 | 国产美女自拍视频| 国产黄在线观看| 四虎一区二区三区| 成网站在线观看人免费| 国产你懂的在线观看| 国产青草视频在线观看视频| 精品福利影院| 国产农村av| 中文字幕2019第三页| 免费高清视频日韩| 国产三级在线播放| av中文字幕在线看| 国产三级av在线| 女子免费在线观看视频www| √天堂中文在线| 久久国产情侣| 日本在线视频www鲁啊鲁| 国产区高清在线| 国产蜜臀av在线播放| av福利在线播放| 国产网站av| 天天av综合网| 黄色在线视频观看网站| www.狠狠操.com| 在线观看视频污| 国产福利小视频在线| 懂色一区二区三区| 九九热视频在线观看| 欧美色第一页| 麻豆精品传媒视频观看| av资源网站在线观看| av福利在线播放| 99精品老司机免费视频| 97视频在线| 在线成人一区| 在线观看电影av| 一本大道香蕉8中文在线视频| 国产视频精品久久| 国产精品冒白浆免费视频| 最近最好的中文字幕2019免费| 狠狠干天天爱| 狠狠操天天操夜夜操| 国产在线免费观看| 国产一区电影| 精品街拍一区二区| gogo高清在线播放免费| 黄网在线免费| 尤物免费看在线视频| 国产青青视频| 一本久久精品| 国产在线观看18| 国产二级片在线| 欧美一级久久久久久久久大| 超碰国产在线| 午夜av在线免费观看| 中中文字幕av在线| 国产精品久久久久白浆| 91国内精品在线视频| www.中文字幕久久久| 在线91av| 日本h视频在线观看| 国产精品综合久久久久| 国产精彩视频在线观看免费蜜芽| 九九热在线视频观看| 精品国产一区二区三区四区阿崩| 国产馆av播放| 国产95在线|亚洲| 国产羞羞视频| 午夜亚洲成人| 小说区乱图片区| 老鸭窝av在线| 69视频在线观看| 欧洲有码在线视频| 国产精品入口麻豆电影| 黄网在线免费| 黄色国产网站在线观看| 中文字幕在线免费| 人人干在线视频| 91xx在线观看| 欧美高清xxxx性| 日韩黄色成人| 国产精品区一区二| 国产美女高潮| 91xx在线观看| gogo在线观看| 波多野结衣中文字幕久久| 免费观看一二区视频网站| 欧美性猛交xxxx免费看蜜桃| 国产自产视频| 国产视频你懂的| 国产一二三在线观看| 国产高清在线| 99reav| 一级二级三级在线观看| 天天操天天曰| 国产精品免费视频二三区| av小说在线| 91久久麻豆| 99在线播放| 国产色视频网站| 精精国产xxxx视频在线中文版 | 久热中文字幕| 91在线看片| 可以免费看污视频的网站| 黄色毛片在线看| 2021av天天| 九九热免费在线视频| 免费视频中文字幕| 午夜视频在线免费| 高清欧美精品xxxxx在线看| 国产美女福利在线观看| 国产一级片在线| 国产丝袜自拍| jizz在线视频| a级片国产精品自在拍在线播放| 最近中文字幕mv2018在线高清 | 久久精品国产亚洲a∨麻豆| 日本免费视频www| 亚洲精品乱码电影在线观看| 国产叼嘿网站免费观看不用充会员| 中文字幕免费中文| 欧美婷婷久久五月精品三区| 综合激情丁香| 欧美卡一卡二| 国产精品186在线观看在线播放| 中文字幕国产视频| 国产经典三级在线| 狠狠狠综合7777久夜色撩人| 麻豆av电影在线观看| 中文产幕区在线观看| av在线不卡网站| 97视频在线观看网站| 国产人成精品| 在线观看的网站你懂的| 久久久久久久美女| 国产高清自拍视频在线观看| 欧美在线中文| 国产午夜在线| 国产黄大片在线观看画质优化| 狠狠操狠狠色| 国产国产国产国产国产国产 | 在线一二三区| 国产香蕉尹人视频在线| 精品国产高清自在线一区二区三区 | 中文资源在线官网| 一区免费观看| 中文字幕在线免费视频| 国产精品你懂的在线观看| 国产精品18久久久久久久久久| 国产羞羞视频| 国产精品视频一区麻豆| 亚洲国产aⅴ精品| 亚洲视频日韩| 久久国产精品久久久久久小说| 国产精品冒白浆免费视频| 交换国产精品视频一区| 国产精品久久久久久精| 国产h色视频在线观看| 天天av综合网| 在线国产网址| 国产偷窥洗澡视频| 天堂亚洲精品| 精品国产二区三区| 不卡av免费观看| 伊人免费视频| 国产精品作爱| 国产国语**毛片高清视频| av一级在线| 国产一级二级在线| 开心婷婷激情五月| 国产一级二级在线| 国产中文字幕在线看| 国产日韩精品在线看| 国产成在线观看免费视频| 美女被人操视频在线观看| 国产性一级片| 欧美日韩视频精品二区| 超碰在线国产| 中文字幕不卡| 国产高清视频在线| 国产福利资源| 国产一二三区精品视频| 亚洲国产aⅴ精品| 99热免费在线观看| 在线一区观看| 91社区在线观看| 在线视频中文字幕| 精品欧美日韩一区二区| av在线网页| 在线视频1区2区| 国内精品不卡| 国产国语**毛片高清视频| 免费午夜一级| 国产精品自产拍在线观看2019| 日本综合一区二区三区|