sql自动发邮件功能

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

1,sql自动发邮件功能_第1张图片
右键->【配置数据库邮件】
sql自动发邮件功能_第2张图片

sql自动发邮件功能_第3张图片

sql自动发邮件功能_第4张图片

sql自动发邮件功能_第5张图片

sql自动发邮件功能_第6张图片

sql自动发邮件功能_第7张图片

配置好了之后可以测试能否发送邮件
sql自动发邮件功能_第8张图片

sql自动发邮件功能_第9张图片

sql自动发邮件功能_第10张图片

进去邮箱查看是否收到邮件或者数据库查询
select * from msdb.dbo.sysmail_allitems
sql自动发邮件功能_第11张图片

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

EXEC msdb.dbo.sp_send_dbmail
@recipients='[email protected]',  --接收的邮箱
@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,新建作业
sql自动发邮件功能_第12张图片

sql自动发邮件功能_第13张图片

sql自动发邮件功能_第14张图片

sql自动发邮件功能_第15张图片

sql自动发邮件功能_第16张图片

sql自动发邮件功能_第17张图片

sql自动发邮件功能_第18张图片

sql自动发邮件功能_第19张图片

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

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

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

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

你可能感兴趣的:(SQL)