一般我們寫程式若要發送mail給客戶時,若是.net就直接拉畫面,到資料庫查詢要的欄位
一個一個放上去樣板畫面對應。
一般我們寫程式若要發送mail給客戶時,若是.net就直接拉畫面,到資料庫查詢要的欄位
一個一個放上去樣板畫面對應。
今天看了一位前輩前的文章([MSSQL 2008] SQL SERVER AGENT使用DATABASE MAIL發送電子郵件
還有sql server bookonline中介紹關於sp_send_dbmail的部份
雖然自己也曾經寫過關於使用procedure來發dbmail的文章設定部份,但發現其實dbmail可以簡化我們
在寫程式的過程中,發信通知的部份,就可以改由資料庫來運作,不用再透過程式。
看完bookonline,自行測試了一下,將結果記錄下來,以後也用到的,或許他人也可以快速的使用這
樣的範例,加速專案的進度。
以下是最簡易型的範例
1: EXEC msdb.dbo.sp_send_dbmail
2: @profile_name = 'gmail', --sql server中的dbmail profile名稱
3: @recipients = 'abc@test.com', --收件者
4: @body = '這是測試信', --mail內文
5: @subject = '測試dbmail-sql內容' ; --主旨
以寄出html內文的範例
1: DECLARE @tableHTML NVARCHAR(MAX) ;
2: SET @tableHTML =
3: N'<H1>客戶資料表</H1>' +
4: N'<table border="1">' +
5: N'<tr><th>客戶代號</th>' +
6: N'<th>客戶名稱</th>' +
7: N'<th>城市</th></tr>' +
8: CAST ( ( SELECT top 10 td =CustomerID , '',
9: td = CompanyName, '',
10: td = City
11: FROM Northwind.dbo.Customers
12: FOR XML PATH('tr'), TYPE
13: ) AS NVARCHAR(MAX) ) +
14: N'</table>' ;
15:
16: EXEC msdb.dbo.sp_send_dbmail
17: @profile_name = 'gmail', --sql server中dbmail的profile名稱
18: @recipients = 'abc@test.com', --收件者
19: @body = @tableHTML, --內文的來源為變數
20: @body_format = 'HTML' , --設定內文格式為html
21: @subject = '測試dbmail-sql內容' ; --主旨
以下為收到mail的樣子
看起來還頗不錯的..走過必留下痕跡,留個記錄,以後也好查