iT邦幫忙

0

[MS SQL] SQLServer 寄送郵件sp_send_dbmail

  • 分享至 

  • xImage
  •  

msdb每個sql server instance都會有這個系統資料庫
msdb裡面會有一個寄送郵件的SP proc sp_send_dbmail
我們可以用它來寄信
用法如下

設定SMTP

在 資料庫主機→「管理」→「Database Mail」→右鍵「設定Database Mail」
https://ithelp.ithome.com.tw/upload/images/20201214/20106764DYH45S69i1.png
如果有新增,按"執行下列工作以設定Databse Mail"
如果查看修改,按"管理Database Mail帳號和設定檔

帳號名稱:sqlmail - 任填
SMTP
-電子郵件:sqlmail@xxxxxxx.com.tw --還不知道它的意思
-顯示名稱:HappyTrans --任填,寄件者名稱就會是它
-回覆電子郵件:sqlmail@xxxx.com.tw --不知道是什麼意思
-伺服器名稱:oooo.xxxxx.com.tw
-Port : 25
SMTP驗證 : 匿名驗證

重啟SQL Sserver Agent。
因為SQL Server Agent 會快取指定設定檔的資訊,所以只要設定檔有變更就得重啟SQL Server Agent才能生效哦!

檢視/確認

--列出一或多個郵件設定檔的相關資訊。
EXECUTE msdb.dbo.sysmail_help_profile_sp
--列出一或多個Database Mail 設定檔的相關帳戶。
EXECUTE msdb.dbo.sysmail_help_profileaccount_sp
--列出Database Mail 帳戶的相關資訊(密碼除外)。
EXECUTE msdb.dbo.sysmail_help_account_sp
 

--列出Database Mail設定檔
SELECT * FROM msdb.dbo.sysmail_profile
--列出Database Mail帳戶
SELECT * FROM msdb.dbo.sysmail_account
--列出設定檔對應的帳戶
select * from msdb.dbo.sysmail_profileaccount

發送MAIL

            EXEC msdb.dbo.sp_send_dbmail
            @body_format= 'HTML',
            @profile_name = 'sqlmail',
            @recipients = 'xxx@hotmail.com.tw', --收件者 						
            @body = "<table><tr><td>123456789</td></tr></table>",--內文
            @query='select getdate()'  --還可以下查詢式哦
            @subject = 'test!';--主旨=tilte


					

訊息為:佇列的郵件 (識別碼: 1005)。

收到郵件

寄件者 : sqlmail
主旨 test!
內容 123456789


MSSQL 2000
https://ithelp.ithome.com.tw/upload/images/20201214/20106764R56ZtH0oS9.png


設定寫在msdb
郵件內容也會寫在裡面等著Mailserver.exe把他們寄出去.
那郵件內容寫在哪裡呢?
看了一下SP內容,裡面有更多funtion 要查看才會知道.

ref
https://yangxinde.pixnet.net/blog/post/27079211
https://mydiamond.pixnet.net/blog/post/56234709
https://ithelp.ithome.com.tw/articles/10029451


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言