SQL Server存儲過程郵件發送以表格方式發送


一、收到郵件顯示:示例

 

二、存儲過程代碼部分: 

BEGIN

    SET NOCOUNT ON;
    --初始化
    Declare @MailTo nvarchar(max)
    Declare @MailCc nvarchar(max)
    Declare @MailBcc nvarchar(max)
    Declare @MailSubject nvarchar(255)
    Declare @MailBody nvarchar(max)
    Declare @MailFormat nvarchar(20)
    DECLARE @SignCount nvarchar(50)

    --查詢表格中異常資料筆數

    SELECT @SignCount=COUNT(1) FROM  表名稱  WHERE  篩選條件 

    SET @MailSubject='異常共'+@SignCount+'筆'
    SET @MailFormat='HTML'
    SET @MailTo='xxx.zzz@qq.com'    --收件人郵件地址
    SET @MailCc='xxx.zzz@qq.com'   --抄送
    SET @MailBcc='xxx.zzz@qq.com'  --密送
    SET @MailBody=''    --發送內容

    SET @MailBody =
    N'Dear Sir/Madam:<br>異常共'+@SignCount+'筆,請及時核對,謝謝!!!<br><H4>&nbsp;&nbsp;&nbsp;&nbsp;列表如下:</H4>' +

     --定義郵件表格尺寸大小
    N'<table border="1" style="font-size:11px;text-align:center" width="60%">' +     

    --定義列表對應列名稱 
    N'<tr style="font-size:11"><th>工號</th>' +    
    N'<th>姓名</th>' +
    N'<th>已用天數</th>' +
    N'<th>實際已用天數</th>' +
    N'<th>異常狀態</th>' +

    --表主體結果
    CAST ( ( SELECT
        td = Empid, '',
        td = EmpCName, '',
        td = [ULColA29-AdjAnlUsePos-Sum], '',
        td = VocaTotalHours, '',
        td = [ULColA29-State], ''
        FROM  表名稱  Form   WHERE  篩選條件   FOR XML PATH('tr'), TYPE     --將查詢出來結果以HTML語言 td/tr顯示出來
        ) AS NVARCHAR(MAX)

       ) +
    N'</table><br>以上為系統發送,請勿回復!!!<br>xx部xx課'

    declare @i int   
  BEGIN
    SET @i=0;


    EXEC msdb.dbo.sp_send_dbmail         --執行SQL郵件發送的一個功能地址

    --對應的郵件主體參數帶入發送郵件
    @profile_name='MIS_SMTP_Mail',     --sql郵件設置的配置名稱
    @recipients=@MailTo,  --收件地址
    @copy_recipients=@MailCc,      --抄送地址
    @blind_copy_recipients=@MailBcc,       --密送
    @subject=@MailSubject,           --郵件主題
    @body=@MailBody,               --mail正文內容
    @body_format=@MailFormat        --郵件內容格式

    SET @i=1;
  END

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM