sql自动发邮件功能

用SQL自动发邮件需要三步
1,做一个配置文件
2,调用存储过程msdb.dbo.sp_send_dbmail
3, 创建作业

1,这里写图片描述
右键->【配置数据库邮件】
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

配置好了之后可以测试能否发送邮件
这里写图片描述

这里写图片描述

这里写图片描述

进去邮箱查看是否收到邮件或者数据库查询
select * from msdb.dbo.sysmail_allitems
这里写图片描述

2,接下来就编写发送邮件代码

EXEC msdb.dbo.sp_send_dbmail
@recipients='ganqw217ww@163.com',  --接收的邮箱
@body=N'测试sp_send_dbmail',  --正文
@body_format='HTML',    --正文格式
@subject='test',        --标题
@profile_name=N'sendEmail',  --配置文件,就是前面配置好的
@query='select * from dbAA.dbo.student', --查询
@attach_query_result_as_file=1,  --是否以附件发送
@query_attachment_filename='test.csv'  --附件文件名

此段代码也可以在SQL里面执行,看看有没有保存,没有报错会提示‘邮件已排队’字样

3,新建作业
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

到了这里就好了,写的时候是参照前辈们的博客,真心感谢前辈,由于参考的很多前辈的文章,我就不列出来了,真心感谢。
在参照了前辈的文章之后,在自己真正做的时候还是会遇到很多问题的,所有还是想做个总结,以便以后忘记了可以看

附上遇到的问题,
1,所选用的邮件有些没有开启POP3/SMTP/IMAP
2,sina不行就换个163试试,再不行换换其他的
3,本人今天用163做了测试,后来就不行了,再后来在网页登录163邮箱发送邮件,提示“对不起,您今天发送的对象过多,请明日再试”
4,这个问题我也找了很久,就是用了@query再用作业就是不行,不用就可以,在SQL语句执行也可以,但是在作业里就是不行,后来的解决办法是在【安全性】->【用户】->NT AUTHORITY\SYSTEM 的属性->【服务器角色】勾选是sysadmin就可以了

因为是后面一帆风顺之后整理的,所以没有把遇到的错误描述粘出来

再次感谢前辈们的分享!!!有不足之处请多多指出。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值