sql server 2012 使用数据库定时发送HTML格式邮件

        上周,老大突然给了个任务:做一个日订单生产通报的定时邮件,要求把每天ERP系统里产生的生产报工数据和营销订单数据汇总成网格的形式,然后发送给各部门的老大查看。

类似这样的形式:

sql server 2012 使用数据库定时发送HTML格式邮件

    开始的时候有点懵,不知道从哪下手,后来翻阅了资料发现可以用SQL代理的邮件服务用smtp后台发送邮件。

设置过程:

1、

sql server 2012 使用数据库定时发送HTML格式邮件

2、

sql server 2012 使用数据库定时发送HTML格式邮件

3、

sql server 2012 使用数据库定时发送HTML格式邮件

4、

sql server 2012 使用数据库定时发送HTML格式邮件

5、

sql server 2012 使用数据库定时发送HTML格式邮件

6、

sql server 2012 使用数据库定时发送HTML格式邮件

7、配置好后可以邮发送测试邮件到指定的账户,检测是否配置成功

sql server 2012 使用数据库定时发送HTML格式邮件

    SQL全部部署好后用下面这个存储过程传入相关的参数执行即可发送邮件了,是不是很方便!

exec msdb.dbo.sp_send_dbmail
@profile_name = 'SQLServer_DotNetCrazy1',   --配置名称
@recipients = '[email protected]',    --收件名称
@body_format = 'HTML',                      --内容格式
@subject = '文章标题',
@body = '邮件内容'  

好了,接下来任务在数据库里将所需要的数据查出来,手动拼接内容传入@body即可在邮件中显示。

当然了,我们的任务是要做出HTML网格的邮件格式,那么就需要传入html代码块。

这里我们的方法是使用Dreamweaver 网页制作软件画出一个简单的网格图

如图:

sql server 2012 使用数据库定时发送HTML格式邮件

画出图后拿到代码后在SQL里面将对应的数据(如订单数,客户数等)用查询结果的参数值代替,保证每次发送邮件都是最新的数据。最后将完整的邮件内容的HTML代码块整个传入邮件发送呢存储过程的@Body参数即可

sql server 2012 使用数据库定时发送HTML格式邮件

数据内容全部搞定后,最后一步:定时发送邮件。

只需要将这段执行代码放入SQL代理的作业中设定好发送时间和发送周期,就大功告成啦,!

图解:

1、

sql server 2012 使用数据库定时发送HTML格式邮件

2、sql server 2012 使用数据库定时发送HTML格式邮件

3、

sql server 2012 使用数据库定时发送HTML格式邮件

4、sql server 2012 使用数据库定时发送HTML格式邮件

最后附上一张成果图:

sql server 2012 使用数据库定时发送HTML格式邮件