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 asdb.dbo.xx_xxx_xxxxx      –执行sql邮件发送的一个功能地址,这个地址就要去问公司的负责人了

    –对应的邮件主体参数带入发送邮件
    @profile_name=’mis_smtp_mail’,     –系统设置的邮件发送名称    –公司邮件管理者db设置
    @recipients=@mailto,
    @copy_recipients=@mailcc,
    @blind_copy_recipients=@mailbcc,
    @subject=@mailsubject,
    @body=@mailbody,
    @body_format=@mailformat

    set @i=1;
  end

end

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐