2014-04-09

MS SQL 使用sp_send_dbmail發送-HTML格式郵件

透過MS SQL的sp_send_dbmail可直接將查詢出的資料以HTML郵件格式發出
範例如下
--建立測試表格/資料
IF (select OBJECT_ID('tempdb..#Mail_Tmp')) IS NOT NULL DROP TABLE #Mail_Tmp
CREATE TABLE #Mail_Tmp (AccNo VARCHAR(10),
      EMail VARCHAR(MAX))
 
INSERT INTO #Mail_Tmp VALUES ('dean','dean@gmail.com')
INSERT INTO #Mail_Tmp VALUES ('phoebe','phoebe@gmail.com')

--抓取資料
IF EXISTS (select * from #Mail_Tmp)
BEGIN
 DECLARE @tableHTML  NVARCHAR(MAX) ;
 SET @tableHTML =
  N'<H1>用戶郵件帳號明細</H1>' +
  N'<table border="1">' +
  N'<th>使用者</th>'+
  N'<th>email</th>'+  
  N'</tr>' +
  CAST ( (select td=AccNo,'',
      td=EMail,''
    from #Mail_Tmp
      FOR XML PATH('tr'), TYPE
  ) AS NVARCHAR(MAX) ) +
  N'</table>'+
  N'此郵件由系統發出'
 
 EXEC msdb.dbo.sp_send_dbmail
  @profile_name='ERP_DB',--Database Mail設定檔名稱
  @recipients='dean@gmail.com',--收件者
  @copy_recipients='',--CC
  @subject='用戶郵件帳號明細',--主旨
  @body=@tableHTML,
  @body_format=HTML--使用HTML格式
END

收到郵件結果如下

參考自 MSDN-sp_send_dbmail
張貼留言