SQL Server中如何存储过程邮件以格式形式发送?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
本篇文章给大家带来的内容是关于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> 列表如下:</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
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。