通过SQLServer的数据库邮件来发送邮件
通过SQL Server,也可以发送邮件,而且配置过程也是非常的简单,只需要你有邮箱就行。
下面就通过SQL Server来发送邮件。
一、启用Database Mail XPs功能。
查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期版本提供的发送邮件功能,而现在用的是Database Mail XPs来实现发送邮件。
1
2
3
4
5
6
7
8
9
10
11
12
|
select name , value, description, is_dynamic, is_advanced from sys.configurations where name like '%mail%' /* name value description is_dynamic is_advanced SQL Mail XPs 0 Enable or disable SQL Mail XPs 1 1 Database Mail XPs 0 Enable or disable Database Mail XPs 1 1 */ |
启动Database Mail XPs功能:
1
2
3
4
5
6
7
8
9
|
sp_configure 'show advanced options' ,1 go reconfigure go sp_configure 'Database Mail XPs' ,1 go reconfigure go |
二、配置数据库邮件
1、点开管理目录,右键“数据库邮件”,选择“配置数据库邮件”选项:
2、弹出“数据库邮件配置向导”,单击下一步:
3、选择“通过执行以下任务来安装数据库邮件”选项,单击下一步:
4、输入“配置文件名”,这里我输入的是:db_mail,然后单击右侧的“添加”按钮:
5、输入账户名、说明,按照你的实际情况,输入:电子邮件地址、服务器名称,用户名和密码,必须要输入正确,否则就不能正确发送邮件。
比如我的邮箱地址是:xbase100@163.com,用户名和密码,就是登陆这个邮箱的用户名和密码,服务器名称是:smtp.163.com
6、填写完成后,单击下一步:
7、在“公共”选项打上勾,单击下一步:
8、可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名,单击下一步:
9、单击完成按钮。
10、显示配置成功。
三、发送邮件。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
DECLARE @email_conetent VARCHAR (8000); --存放邮件正文 --计算有多少条记录 SELECT @email_conetent = '你的数据库,共有:' + cast ( COUNT (*) as varchar ) + '个表!' FROM sys.tables; --发送邮件 EXEC msdb.dbo.sp_send_dbmail @profile_name = 'db_mail' , --配置文件名称 @recipients = 'abc@163.com' , --收件email地址 @subject = '你好' , --邮件主题 @body = @email_conetent --邮件正文内容 |
四、查看数据库邮件日志。
右键“数据库邮件”,选择“查看数据库邮件日志”:
五、登陆邮箱验证邮件是否发送成功。
登陆163的邮箱,看到有新的邮件:
打开邮件,看到的邮件内容: