日期:2014-05-16  浏览次数:20577 次

通过SQL Server的数据库邮件来发送邮件

通过SQL Server,也可以发送邮件,而且配置过程也是非常的简单,只需要你有邮箱就行。

 

下面就通过SQL Server来发送邮件。

 

 

一、启用Database Mail XPs功能。

 

查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期版本提供的发送邮件功能,而现在用的是Database Mail XPs来实现发送邮件。

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功能:

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、显示配置成功。

 

 

三、发送邮件。

 

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_conet