上週,老大突然給了個任務:做一個日訂單生產通報的定時郵件,要求把每天ERP系統裏產生的生產報工數據和營銷訂單數據彙總成網格的形式,然後發送給各部門的老大查看。
類似這樣的形式:
開始的時候有點懵,不知道從哪下手,後來翻閱了資料發現可以用SQL代理的郵件服務用smtp後臺發送郵件。
設置過程:
1、
2、
3、
4、
5、
6、
7、配置好後可以郵發送測試郵件到指定的賬戶,檢測是否配置成功
SQL全部部署好後用下面這個存儲過程傳入相關的參數執行即可發送郵件了,是不是很方便!
exec
msdb.dbo.sp_send_dbmail
@profile_name =
'SQLServer_DotNetCrazy1'
,
--配置名稱
@recipients =
'[email protected]'
,
--收件名稱
@body_format =
'HTML'
,
--內容格式
@subject =
'文章標題'
,
@body =
'郵件內容'
好了,接下來任務在數據庫裏將所需要的數據查出來,手動拼接內容傳入@body即可在郵件中顯示。
當然了,我們的任務是要做出HTML網格的郵件格式,那麼就需要傳入html代碼塊。
這裏我們的方法是使用Dreamweaver 網頁製作軟件畫出一個簡單的網格圖
如圖:
畫出圖後拿到代碼後在SQL裏面將對應的數據(如訂單數,客戶數等)用查詢結果的參數值代替,保證每次發送郵件都是最新的數據。最後將完整的郵件內容的HTML代碼塊整個傳入郵件發送呢存儲過程的@Body參數即可
數據內容全部搞定後,最後一步:定時發送郵件。
只需要將這段執行代碼放入SQL代理的作業中設定好發送時間和發送週期,就大功告成啦,!
圖解:
1、
2、
3、
4、
最後附上一張成果圖: